lufy's legend

标题: 被移除的LSprite重新addChild后,上面的Graphics不显示 [打印本页]

作者: yorhomwang    时间: 2013-6-12 22:01
标题: 被移除的LSprite重新addChild后,上面的Graphics不显示
如果移除LBitmap,然后再addChild回来,是可以再次显示的,可以看下面的DEMO
http://www.cnblogs.com/yorhom/articles/3133204.html
但是如果移除一个画有Graphics的LSprite后,重新addChild会就看不到Graphics了,可以看下面的DEMO
http://www.cnblogs.com/yorhom/articles/3133201.html

求解,这是怎么回事?是不是引擎的bug?

作者: lufy    时间: 2013-6-13 15:38
这个不是bug,被移除的LSprite对象,会自动调用自身的die()函数和removeAllChild()函数,以防止内存泄露,有助于垃圾回收,就是说被移除的LSprite对象,即使你仍然保存了它的索引,它已经是一个空对象了
作者: cailven    时间: 2013-6-18 16:31
lufy 发表于 2013-6-13 15:38
这个不是bug,被移除的LSprite对象,会自动调用自身的die()函数和removeAllChild()函数,以防止内存泄露, ...

关于这个问题,我今天也发现了,也认为有点bug。在flash中,removeChild只是从舞台上移除,并不是消亡对象。因为removeChild后会很有可能立马把物体再addChild进来。我现在遇到这样的情况只好用visible=false来代替了。但我建议lufy兄,如果可以考虑把现在已经包含了die()和removeAllChild()的removeChild改成destory(),而把removeChild做成flash的标准,会更合适flash转型的程序员使用。谢谢
作者: lufy    时间: 2013-6-18 17:48
cailven 发表于 2013-6-18 16:31
关于这个问题,我今天也发现了,也认为有点bug。在flash中,removeChild只是从舞台上移除,并不是消亡对 ...

嗯,想想也是,我想办法把这里改为可控制选项,多谢建议。




欢迎光临 lufy's legend (http://lufylegend.com/forum/) Powered by Discuz! X2.5