0

私はmovieClipボタンが入ったさまざまなmovieClipsを使用しています-すべてのMCはコードを介して挿入され、ステージには何もありません。ボタンのeventListenerがトリガーされるたびに、次の関数を呼び出し、次のmovieClipを行に追加してから、前に使用したMovieClipへの参照を削除します。

具体的には、パズルゲームを書いています。ゲームに入るたびに、ピースの1つを移動して、MovieClipの戻るボタンを押します。次に同じゲームに入るときは、そのままのピースが表示されます。 movieClipを使用して、元の位置に再起動します。私はここで何が間違っているのですか?ここでのポイントは、各関数をクリックして戻ったときに、ゲームを開始したときの参照を再開する方法です。ありがとう。

public function start1()
        {

                  //start screen

            addChild(first1);
            first1.start(button name).addEventListener(MouseEvent.CLICK, start); 

        }


    public function back1(even:MouseEvent)
{
removeChildAt(numChildren - 1); //want to remove who ever called back1
start1();
}

    public function start(even:MouseEvent)
{
       /choosing num of pieces

       removeChildAt(numChildren - 1); //want to remove first1
       addChild(level);
       level.back.addEventListener(MouseEvent.CLICK, back1);
       level.sixpieces.addEventListener(MouseEvent.CLICK, sixLevel);

}
  //level choosing
    public function sixLevel(even:MouseEvent)
{   
    removeChildAt(numChildren - 1); //want to remove level
     addChild(clevel);
      clevel.back.addEventListener(MouseEvent.CLICK, back1);
      clevel.easy.addEventListener(MouseEvent.CLICK, function(){Slevel=1;six(even);});
      clevel.med.addEventListener(MouseEvent.CLICK, function(){Slevel=2;six(even);});
      clevel.hard.addEventListener(MouseEvent.CLICK, function(){Slevel=3;six(even);});


}

//game itself
    public function six(even:MouseEvent)
{   
    num=6;
    row1=0;
    row2=1;
    row3=2;
    row4=3;

     removeChildAt(numChildren - 1);
      addChild(full1);

      if(Slevel==1)
      {
          full1.time1.visible=false;
          full1.full.visible=true;
        full1.frame1.visible=false;

      }
    else
     if(Slevel==2)
     {
         full1.full.visible=false;
          myTimer = new Timer(1000,60);
     }
     else
     if(Slevel==3)
     {
          full1.full.visible=false;
           myTimer = new Timer(1000,30);
     }
    if(Slevel!=1)
    {
        Slevel=4;

    }
    full1.back.addEventListener(MouseEvent.CLICK, back1);
    for(a=0;a<6;a++)
    {
        this.locarrs[3][a].addEventListener(MouseEvent.MOUSE_DOWN, Move);
        this.locarrs[3][a].addEventListener(MouseEvent.MOUSE_UP, stopMove);
    } 

}
4

1 に答える 1

0

戻るクリックで元の位置とレポを保存するか、毎回ムービークリップを作成して破棄することができます。その位置は mc 自体に保存されるため、表示リストに再度追加するだけでは十分ではありません。

于 2012-07-14T12:00:48.270 に答える