AS3 setChildIndex 到前面
Posted
技术标签:
【中文标题】AS3 setChildIndex 到前面【英文标题】:AS3 setChildIndex to front 【发布时间】:2012-07-29 02:10:25 【问题描述】:有没有办法将特定的movieClip 发送到舞台上所有其他movieClip 的前面?
我知道 setChildIndex,但我无法找到动态计算顶部位置的方法。
【问题讨论】:
【参考方案1】:您可以将setChildIndex()
与numChildren
一起使用。
setChildIndex(childClip, numChildren - 1);
【讨论】:
【参考方案2】:您不需要使用 setChildIndex。 addChild 在所有剪辑的顶部发送孩子。 您可能会认为 addChild 会双重添加您的 MC,但它不会,第二次它只会更新它的子索引。
【讨论】:
我喜欢这种简单的解决方案。这是非常真实的。它只会更新索引。【参考方案3】:默认情况下,flash 将影片剪辑添加到显示列表的顶部,因此您可以重复将子项添加到容器中。
stage.addChild(bottom);
stage.addChild(top);
// top is now on bottom.
stage.addChild(bottom);
// bottom is now on top.
【讨论】:
0
是最低级别,因为每个孩子都结束了。
是的,那没用。这特别使我的电影剪辑到了后面。【参考方案4】:
movieclip(mc) 被添加到画布上,
canvas.setChildIndex(mc, 0);
画布添加到舞台上,
stage.setChildIndex(canvas, 0);
【讨论】:
【参考方案5】:/* Bring Any Clicked Object to the Front
Clicking on any symbol on the Stage moves it in front of all other instances.
*/
// This code makes all symbol instances on stage clickable by making them listen for the CLICK event.
for (var fl_ChildIndex:int = 0;
fl_ChildIndex < this.numChildren;
fl_ChildIndex++)
this.getChildAt(fl_ChildIndex).addEventListener(MouseEvent.CLICK, fl_ClickToBringToFront);
// This is the function that moves the clicked object to the front of the display list
function fl_ClickToBringToFront(event:MouseEvent):void
this.addChild(event.currentTarget as DisplayObject);
来自 Adobe Flash Professional 代码片段。
【讨论】:
我并不怀疑这可行,但与 Florent 给出的“setChildIndex(childClip, numChildren - 1);”解决方案相比,这听起来过于复杂。以上是关于AS3 setChildIndex 到前面的主要内容,如果未能解决你的问题,请参考以下文章