因为pushScene参数要穿scene,看到一个帖子说用下面的方法
cc.director.preloadScene(“fight”, function (err, asset) {
if (err) {
cc.error(“err:” + err);
return;
}
//cc.loader.setAutoRelease(asset._uuid,true);
if (asset.scene instanceof cc.Scene) {
asset.scene._load();
asset.scene._activate();
}
cc.director.pushScene(asset.scene._sgNode);
cc.director.startAnimation();
});
是可以的,但popScene之后,再次用相同的方法pushScene到fight场景,发现fight场景的ui停留在pop之前的状态,fight的脚本onLoad也不会被调用。。
有哪位了解啊,cocos creator的版本是v1.3.2
目前不能用 push/pop Scene,你自己管理一下场景吧。
使用loadscene直接会使上一个场景变为null。
我想自己管理的话,怎样才能不让它释放呢。我指的是场景的指针还能被引用,不是指资源的释放。
1赞
场景目前切换后就必须释放,不能再引用
那我如何进行管理?
自由控制指针可以做出很多种ui模式。是不是只能改源码了。
建议将不同的 UI 模式做成一个场景中的不同节点,这样切换模式的时候切换节点的显示与隐藏就可以了。
我需要在类似 controller (iOS) /activity(android) 这个层面上做UI结构。
有很多个场景我的代码都写好了,都是场景级别的。现在全部改成node,很难改,而且没有onload start这些框架回调。我重新在你们scene再封装一层ui框架,是重复劳动了。用引擎本来就是用现成的ui框架。
切换节点显示隐藏就更不可能了。有非常多的场景。内存会爆掉。
push场景不就是类似隐藏嘛。。 不会释放资源的呀。 内存不是一样的吗。。
我有 3个tab,其实是三个栈,每个栈可以往下push
1 需要同时保存三个scene,栈顶的 scene需要抓住指针不释放。可以瞬切。
2 每个栈不停往下push,push的时候是释放场景,保存场景data,这样可以释放内存。保存的data保证在pop的时候知道上一个场景是啥,数据是啥。
3 这个结构同时最多存在3个scene.即栈顶的scene,内存不会爆掉。
系统报错‘push’是怎么回事啊 老哥