0

リンク付きのライブラリに 2 つのムービー クリップがあります。

ステージには 2 つのボタンがあります。それぞれがステージ上の特定の mc ターゲットにムービー クリップをロードします。ステージをクリアするために、MC ターゲットを削除する 3 つ目のボタンもあります。

AS3 のコードを変更して、読み込まれたムービー クリップが同時に表示されないようにする方法を知りたいのですが、AS2 で深度を使用していたように、互いに入れ替えます。

これはコードです:

var myIgool = new igool ();
var myRibooa = new ribooa ();

loadigool.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_3);


function fl_MouseClickHandler_3(event:MouseEvent):void
{
mc_all.addChild (myIgool);
}

loadribooa.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_4);

function fl_MouseClickHandler_4(event:MouseEvent):void
{
mc_all.addChild (myRibooa);
}


unloadall.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_6);

function fl_MouseClickHandler_6(event:MouseEvent):void
{
removeChild(mc_all);
;   
}
4

1 に答える 1

0

次のようなものをお勧めします。

var myIgool = new igool ();
var myRibooa = new ribooa ();

mc_all.addChild(myIgool);
mc_all.addChild(myRibooa);

myIgool.visible = false;
myRibooa.visible = false;

loadigool.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_3);

function fl_MouseClickHandler_3(event:MouseEvent):void
{
    myIgool.visible = true;
    myRibooa.visible = false;
}

loadribooa.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_4);

function fl_MouseClickHandler_4(event:MouseEvent):void
{
    myIgool.visible = false;
    myRibooa.visible = true;
}

unloadall.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_6);

function fl_MouseClickHandler_6(event:MouseEvent):void
{
    myIgool.visible = false;
    myRibooa.visible = false;  
}

ただし、本当に交換したい場合は、次のこともできますが、描画する必要のないものを覆うよりも効率的であるため、visible フラグを設定することをお勧めします。

loadigool.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_3);

function fl_MouseClickHandler_3(event:MouseEvent):void
{
    if (myIgool.parent != mc_all)
    {
        mc_all.addChild(myIgool);
    }
    else
    {
        mc_all.setChildIndex(myIgool, mc_all.numChildren - 1);
    }
}

loadribooa.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_4);

function fl_MouseClickHandler_4(event:MouseEvent):void
{
    if (myRibooa.parent != mc_all)
    {
        mc_all.addChild(myRibooa);
    }
    else
    {
        mc_all.setChildIndex(myRibooa, mc_all.numChildren - 1);
    }
}
于 2013-10-10T20:33:58.470 に答える