测试在cocos2.0.5
直接用cc.director.loadScene在安卓微信小游戏上会黑一下,改成cc.director.runScene就好多了。
` goView(view){
var onBeforeLoadScene = ()=>{};
var injectLaunched = ()=>{};
var sucCallback = function (scene) {
cc.director.runScene(scene, onBeforeLoadScene, injectLaunched)
}.bind(this);
//loadScene在微信安卓下,会跳转黑屏
var errCallback = function () {
cc.director.loadScene(view, injectLaunched);
}.bind(this);
if(debug){
this.loadResSecen(view, sucCallback, errCallback)
}else{
cc.director.loadScene(view);
}
},
//hack
loadResSecen(sceneName, sucCallback, errCallback) {
var info = cc.director._getSceneUuid(sceneName);
cc.loader.load({ uuid: info.uuid, type: 'uuid' }, (completedCount, totalCount) => {
// em.eventNode.emit(EVENT_TYPE.LOAD_SCENE, {
// completedCount, totalCount, sceneName //加载进度, 另一个边监听LOAD_SCEN消息获取进度值
// })
}, (error, sceneAsset) => {
if (error) {
console.log(error)
errCallback && errCallback();
return;
}
else {
//跟引擎 cc.AssetLibrary.loadAsset一致。 设置 dependAssets, isScene && cc.loader.removeItem(key)
var key = cc.loader._getReferenceKey(info.uuid);
sceneAsset.scene.dependAssets = cc.loader.getDependsRecursively(key);
if (sceneAsset instanceof cc.SceneAsset) {
(sceneAsset.constructor === cc.SceneAsset || sceneAsset instanceof cc.Scene) && cc.loader.removeItem(key);
var scene = sceneAsset.scene;
scene._id = sceneAsset._uuid;
scene._name = sceneAsset._name;
sucCallback(scene);
return;
}
else {
errCallback && errCallback();
}
}
})
},`
demo:
testAndr.rar (532.8 KB)