如何重新启动对flash as3 movieclip的引用



我使用各种带有movieClip按钮的movieClips,其中所有MC都是通过代码插入的,舞台上什么都没有。每次触发按钮的eventListener时,我都会调用下一个函数,在那里我添加了行中的下一个movieClip,然后我想删除对我之前使用的movieClip的引用。

更具体地说,我正在写一个益智游戏,每次我进入游戏时,移动其中一块并按下MovieClip后退按钮,下次我进入同一个游戏时,我仍然会看到我离开的那块,我希望MovieClip重新启动到它的原始位置。我在这里做错了什么?不要介意vars,这里的重点是当我点击每个函数时,我如何重新启动它们在我开始游戏时的引用?谢谢

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);
    } 
}

您可以保存原始位置并在点击后重新发布,也可以每次创建并销毁电影剪辑。仅仅再次添加到显示列表是不够的,因为它的位置保存在mc本身上。

最新更新