lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 11567|回复: 3
打印 上一主题 下一主题

被移除的LSprite重新addChild后,上面的Graphics不显示

[复制链接]

46

主题

3

好友

1866

积分

偏将军

Rank: 4

跳转到指定楼层
楼主
发表于 2013-6-12 22:01:04 |只看该作者 |倒序浏览
如果移除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?
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

沙发
发表于 2013-6-13 15:38:15 |只看该作者
这个不是bug,被移除的LSprite对象,会自动调用自身的die()函数和removeAllChild()函数,以防止内存泄露,有助于垃圾回收,就是说被移除的LSprite对象,即使你仍然保存了它的索引,它已经是一个空对象了
不回答与技术和引擎不相关的问题
回复

使用道具 举报

2

主题

0

好友

42

积分

士兵

Rank: 1

板凳
发表于 2013-6-18 16:31:12 |只看该作者
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转型的程序员使用。谢谢
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

地板
发表于 2013-6-18 17:48:59 |只看该作者
cailven 发表于 2013-6-18 16:31
关于这个问题,我今天也发现了,也认为有点bug。在flash中,removeChild只是从舞台上移除,并不是消亡对 ...

嗯,想想也是,我想办法把这里改为可控制选项,多谢建议。
不回答与技术和引擎不相关的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-5-4 14:46 , Processed in 0.046368 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部