我是ActionScript的新手,所以这个问题可能是一个愚蠢的问题。
我正在尝试将另一个动画片段替换为动画片段,同时保留前一个的实例名称。
我有一个带有选择按钮的菜单,每个按钮都带有带动画片段和洗涤器栏的同一屏幕。我尝试通过变量定义动画片段,然后尝试通过事件侦听器函数重新定义它,但我想我做不到:
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);
}
由于我执行了洗涤器条形码,因此我需要使movieclips的实例保持相同。我使用的方法是否完全无效?
您必须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);
}
新功能将删除先前显示的影片剪辑,而不管其类型如何。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句