Actionscript 3:按钮总是在最上面?

Actionscript 3: Buttons always on top?

我正在开发一个小游戏。所以我的主时间线需要 4 层。底层是一个带有一些按钮的影片剪辑。在上面的两层中,还有用于效果和动作的影片剪辑,最上面的一层用于动作脚本。层的顺序是预期的。

而且当我测试它时,我无法点击任何按钮,因为它们上面肯定有动画片段。是否有可能在 actionscript 中说,所有按钮总是在最上面?

您可以通过设置 parent.setChildIndex(childObject, i) 来更改 z-index。设置一个非常高的索引,以确保其始终在顶部

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/all-index-Z.html

每次在您的某个按钮上添加新的 DisplayObject / DisplayObjectContainer 时,您也可以调用 addChild...

如果您的按钮存储在 Vector 中,如下所示:

var buttons:Vector.<SimpleButton> = new Vector.<SimpleButton>();

你有一个像 setButtonsOnTop

这样的函数
function setButtonsOnTop():void{
    for(var i:uint=0;i<buttons.length;i++){
        addChild(buttons[i]);
    }
}

在按钮上添加内容时调用该函数。

setButtonsOnTop();

所以按钮总是在其他 DisplayObjects 之上...

要删除按钮,您可以通过添加 "removeButtons" 方法来完成此操作:

function removeButtons():void{
    for(var i:uint=0;i<buttons.length;i++){
        removeChild(buttons[i]);
    }
}

这样就不用关心索引值了