cocos2dx-lua每次都创建场景窗体这种写法没有问题吗?

我从别的语言转过来的,看到这种写法有点奇怪。addChild(cc.Layer:create())
每次打开窗体的时候都会调用create创建个新窗体。关掉的时候就removeChild。然后addChild进去的对象就折构了。
例如背包界面我不停的开关,那不是不停的create背包界面吗?这样会不会浪费性能?

写页游的时候,我们通过会用个变量存已new出来的界面。例如 aa = new BagView(); 然后开窗的时候就addChild(aa),这样玩法不管开关多少次,只会构造一次。
看cocos2dx-lua很难理解每次开窗都会构造一次界面。

------感谢
http://www.cocoachina.com/bbs/u.php?action=feed&uid=331340 的回答,有你的回答我就敢大胆的每次都create界面了。

其他答非所问的也感谢你们的热心

先说我的猜测哈,不一定是正确的,你自己验证。。
就是这个create出来的layer,保存下来,记得手动retain(不然一帧过后会被系统回收的),之后记得手动释放。
然后add。。
不要的时候再remove、应该是可以的。。。按照我的理解。。
removefromparent好像也有不清除的选项。。。

看了一下你是lua,lua内存管理机制就不熟悉了。。

答非所问啊

你可以自己retain一下,最后实在不用的时候需要release一次

我知道retain呀,我只是问这种每次开窗都create一次窗体的方式会不会浪费性能。

不回收的方式在api里面写这么详细,百度搜出一大堆。我不是问这个

不这么搞 窗体都在内存里了 , 这是手机 不是pc

当然会浪费性能了,除非你的窗体上的图片全是在FrameCache里,不然每次都会加载相应的图片。

用setVisible…

我在网上搜到的例子怎么全是这种无状态的写界面的方式。每次点界面都create一次

说白了就是内存清除不清除的问题,retain 和 release就是解决你提的问题的。

每次就算create 也是没有问题的除非你里面的东西实在太多了 那就可以预先创建出来不加载 需要的时候再加载