setChildIndex在重叠按钮
问题描述:
我有两个按钮在舞台上,在彼此之上。我试图使用setChildindex,以便当我按下on按钮时,关闭按钮将出现在它的顶部。反之亦然。但我不断收到这个错误,我似乎无法理解。setChildIndex在重叠按钮
Track On ArgumentError:错误#2025:提供的DisplayObject必须是调用者的孩子。 在flash.display一::级DisplayObjectContainer/setChildIndex() 在com.audio::Sequencer/trackOn1()
private var trackOnOff:Boolean = true;
this.track1.trackOn1.addEventListener(MouseEvent.CLICK, trackOn1);
this.track1.trackOff1.addEventListener(MouseEvent.CLICK, trackOff1);
public function trackOn1(event:MouseEvent = null):void
{
trace("Track On")
this.setChildIndex(this.track1.trackOff1, this.numChildren - 1);
trackOnOff = true;
}
public function trackOff1(event:MouseEvent = null):void
{
trace("Track Off")
this.setChildIndex(this.track1.trackOn1, this.numChildren - 1);
trackOnOff = false;
}
请帮助。
答
我希望你的track1
是一个有资产的影片剪辑,即trackOff1
,trackOn1
。如果是这样,您必须将您的setChildIndex()
呼叫定位到该MC,而不是this
。
public function trackOn1(event:MouseEvent = null):void
{
trace("Track On")
this.track1.setChildIndex(this.track1.trackOff1, this.track1.numChildren - 1);
trackOnOff = true;
}
public function trackOff1(event:MouseEvent = null):void
{
trace("Track Off")
this.track1.setChildIndex(this.track1.trackOn1, this.track1.numChildren - 1);
trackOnOff = false;
}
答
有几个简单的方法来做到这一点:
swapChildren(track1, track2);
两个按钮可以调用这一功能,它会产生同样的效果与使用setChildIndex左右交换它们,或者简单地调用addChild(track1)
或addChild(track2)
将movieclip带到同一图层中的任何其他位置。
完成这个伎俩谢谢。 – Robster