【发布时间】:2016-06-23 09:01:56
【问题描述】:
我正在开发一个小游戏。所以我的主时间线需要 4 层。在底层是一个带有一些按钮的影片剪辑。在上面的两层中,还有用于效果和动作的影片剪辑,顶部的图层用于动作脚本。层的顺序是预期的。
当我测试它时,我无法点击任何按钮,因为它们上方肯定有电影剪辑。动作脚本中是否有可能说所有按钮始终位于顶部?
【问题讨论】:
标签: actionscript-3 flash button movieclip
我正在开发一个小游戏。所以我的主时间线需要 4 层。在底层是一个带有一些按钮的影片剪辑。在上面的两层中,还有用于效果和动作的影片剪辑,顶部的图层用于动作脚本。层的顺序是预期的。
当我测试它时,我无法点击任何按钮,因为它们上方肯定有电影剪辑。动作脚本中是否有可能说所有按钮始终位于顶部?
【问题讨论】:
标签: actionscript-3 flash button movieclip
您可以通过设置 parent.setChildIndex(childObject, i) 来更改 z-index。设置一个非常高的索引以确保它始终在顶部
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/all-index-Z.html
【讨论】:
removeChild 明确删除它。关键帧不会删除它。
您还可以在每次将新的 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]);
}
}
所以这样你就不用关心索引值了。
【讨论】: