我有一个UI对象,当然应始终保持在所有其他对象的前面。为此,我决定在每一帧中再次销毁并添加它,如下所示:
removeChild(UI_Indicator)
addChild(UI_Indicator)
但是,在它的区域中创建的对象仍然是它的顶部。这怎么可能呢?我也试过了常见的
UI_Indicator.parent.setChildIndex(UI_Indicator,UI_Indicator.parent.numChildren - 1)
但它也不起作用。有什么建议吗?
答案 0 :(得分:1)
你没有用removeChild()
摧毁任何东西,你只是停止显示它。 removeChild()
在这里甚至不需要。 addChild()
很高兴地接受DisplayObject
已经是您呼叫它的DisplayObjectContainer
的孩子并重新添加孩子(到顶部)
addChild()
,放置你的
显示列表上的allways-on-top DisplayObject
,然后创建
一个DisplayObjectContainer
,例如Sprite
,然后添加它
在您的指标后面。现在将所有其他DisplayObjects
添加到
那个容器。这有一个缺点,需要你添加
容器的一切。功能会在您完成后立即中断
偶然addChild()
常规方式。这个思想过程
导致下面的第二个解决方案。DisplayObjectContainer
的子类中包含
指示符,覆盖与显示列表交互的方法
(添加/删除孩子等)所有可能导致某些事情发生的事情
掌握你的指标。这让你完全掌控
当某个东西被添加到这个容器时会发生什么。您可以
为了简单起见,要么采用解决方案1:委托所有人
方法调用内部容器Sprite
,或者,如果你不喜欢
有一个内部容器,没有它,并确保它
没有其他孩子比你的指标被分配最高
指数。您可以创建一个额外的方法来添加永远在线的孩子,例如addTopChild()
。