0

後でアクセスできるように、オブジェクトのリストを配列に追加する必要がありますが、何らかの理由で、追加したオブジェクトが以前に再生されたため、表示リストに追加しました。コードは次のとおりです。

リストが追加されるフレーム:

sunny.addEventListener(MouseEvent.CLICK, sunny_choice);

function sunny_choice(E:MouseEvent)
{
    var sunny_walkcycle: Sunny_Walkcycle = new Sunny_Walkcycle ();
    var sunny_busstop : Sunny_BusStop = new Sunny_BusStop ();
    var sunny_opening: Teacher_Opening_Sunny = new Teacher_Opening_Sunny ();


    clothingArray.push( sunny_walkcycle);
    clothingArray.push( sunny_busstop);
    clothingArray.push( sunny_opening);

    trace("Sunny");
    cleaner();
//cleaner just removes the event listener and asks it to go to the next frame
}

次のフレーム:

clothingArray [0].scaleX = -1;

addChild (clothingArray [0]);
clothingArray[0].x = 633;
clothingArray[0].y = 174;
clothingArray [0].stop ();
clothingArray [0].addEventListener (MouseEvent.CLICK, transforming);


function transforming (e:MouseEvent) {
    if (clothingArray [0].currentFrame == clothingArray [0].totalFrames) {
        clearall2 ();

    }
    else{
    clothingArray  [0].nextFrame();
    moving_background.nextFrame ();
    }

}
function clearall2 () {
    clothingArray [0].removeEventListener (MouseEvent.CLICK, transforming);
    removeChild (clothingArray [0]);

    gotoAndStop (3);
}

問題のあるもの:

addChild (clothingArray [1]);
clothingArray[1].addEventListener (Event.ENTER_FRAME , busstop);
trace ("The Current Frame is " + clothingArray [1].currentFrame);
function busstop (d:Event) {
        if (clothingArray [1].currentFrame == clothingArray  [1].totalFrames) {
        clearall3 ();

    }
}

function clearall3 () {
    removeChild (clothingArray [1]);
    clothingArray[1].removeEventListener (Event.ENTER_FRAME , busstop);

    }

正確には、フレーム 3 のムービークリップが表示リストに追加される前に再生を開始し、何が原因かわかりません...フレーム 1 に他のオプションがあるため、このフレームで変数を個別に追加することはできませんそれは私が配列を作ることにつながります。

4

2 に答える 2