所以我在屏幕上有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]
然后扩展的动画片段仍会显示在所有内容之下。这可能有什么问题?
答案 0 :(得分:2)
Step0img
为null
。可能的解释可能是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
}