AS3难以让动画片段保持在其他片段之上

时间:2014-07-31 21:41:19

标签: actionscript-3 flash adobe movieclip

所以我在屏幕上有5个动画片段,点击时(DOWN状态)展开。由于这段代码,它们都出现在屏幕的顶部:

addChildAt(this.Step0btn,1);
addChildAt(this.Step1btn,1);
addChildAt(this.Step2btn,1);
addChildAt(this.Step3btn,1);
addChildAt(this.Step4btn,1);

我的问题是,每个扩展的动画片段都是另一个也会扩展的动画片段,但是当我点击它时,它仍会显示在其他所有内容下面。我想我可以添加另一个addChildAt命令,如:

addChildAt(this.Step0btn.Step0img,1);

但是当我这样做时,我收到了这个错误:

TypeError:错误#2007:参数child必须为非null。     在flash.display :: DisplayObjectContainer / addChildAt()     在SMARTTTraining_fla :: MainTimeline / SMARTTTraining_fla :: frame5()[SMARTTTraining_fla.MainTimeline :: frame5:14]

然后扩展的动画片段仍会显示在所有内容之下。这可能有什么问题?

1 个答案:

答案 0 :(得分:2)

当该行代码运行时,

Step0imgnull。可能的解释可能是Step0img所在的框架上不存在Step0Btn

对于你的分层问题(以及我想的错误),这就是你想要做的事情:

this.addChild(Step0btn);  

OR

this.setChildIndex(Step0btn,this.numChildren-1);

他们做同样的事情。这将使最重要的层位于其他步骤按钮之上,您不希望通过执行addChild(step0btn.step0img);

来更改父/子关系

如果您使用的是我在其他question中提供的相同代码,那么这就是onPress方法现在的样子:

function onPress(event:MouseEvent):void
{
    // toggle between frame 1 and 3 on button press
    gotoAndStop(Step0btn.currentFrame == 3 ? 1 : 3); //this expands your button presumably
    parent.addChild(this); //moves this (this button) to the foreground  
}