用另一个动画片段替换动画片段,保留相同的实例名称

时间:2014-04-25 09:06:41

标签: actionscript-3 flash actionscript

我是动作脚本的新手,所以这个问题可能是一个愚蠢的问题。

我试图用另一个movieclip替换一个movieclip,同时保留前一个的实例名称。

我有一个菜单,其中包含一系列按钮,每个按钮通过一个动画片段和一个滑动条导向同一个屏幕。我尝试通过变量定义movieclip,然后尝试通过事件监听器函数重新定义它,但我猜测我不能这样做:

var MC: movieclipsymbol1 = new movieclipsymbol1;


private function selectionscreen(): void {

  selectionscreenbutton1.addEventListener(MouseEvent.CLICK, screenbutton1);
  selectionscreenbutton2.addEventListener(MouseEvent.CLICK, screenbutton2);

  private function screenbutton1(event: MouseEvent): void {
    var MC: movieclipsymbol1 = new movieclipsymbol1;
    movieclipscreen();
  }

  private function screenbutton2(event: MouseEvent): void {
    var MC: movieclipsymbol2 = new movieclipsymbol2;
    movieclipscreen();
  }
}

public function movieclipscreen(): void {
  stage.addChild(MC);
}

由于我做的擦洗条形码,我需要保持动画片段的实例相同。我完全关闭的方法是什么?

2 个答案:

答案 0 :(得分:0)

您必须从两个处理程序中删除var MC,因为您希望可以从处理程序外部访问新的MC。但是,您还需要更改类变量MC的类型,以便它可以包含movieclipsymbol1movieclipsymbol2。该类型中最常见的选择是MovieClip。所以,你必须改变你的功能:

var MC:MovieClip = new movieclipsymbol1();
private function screenbutton1(event: MouseEvent): void {
    clearOldMC();
    MC = new movieclipsymbol1();
    movieclipscreen();
}
private function screenbutton2(event: MouseEvent): void {
    clearOldMC();
    MC = new movieclipsymbol2();
    movieclipscreen();
}
private function clearOldMC():void {
    if (MC.parent) MC.parent.removeChild(MC);
}

新功能会删除以前显示的影片剪辑,无论其类型如何。

答案 1 :(得分:-1)

使用"名称" display对象的属性,用于为movieclip提供实例名称。