2

ステージ上に 2 つのボタンが重なっています。オンボタンを押すとオフボタンがその上に表示されるように、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;
}

助けてください。

4

2 に答える 2

0

これを行うには、いくつかの簡単な方法があります。

swapChildren(track1, track2);

両方のボタンがこの 1 つの関数を呼び出すことができ、setChildIndex を使用してそれらを交換するのと同じ効果が得られます。代わりに、同じレイヤー内の他のものの前にムービークリップを呼び出すaddChild(track1)か、移動するだけです。addChild(track2)

于 2012-11-22T14:12:32.450 に答える
0

アセット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;
}
于 2012-11-22T12:49:17.000 に答える