我是动作脚本的新手,所以这个问题可能是一个愚蠢的问题。
我试图用另一个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);
}
由于我做的擦洗条形码,我需要保持动画片段的实例相同。我完全关闭的方法是什么?
答案 0 :(得分:0)
您必须从两个处理程序中删除var MC
,因为您希望可以从处理程序外部访问新的MC。但是,您还需要更改类变量MC
的类型,以便它可以包含movieclipsymbol1
或movieclipsymbol2
。该类型中最常见的选择是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提供实例名称。