如何使影片剪辑仅播放一次并使用类移动到另一个影片剪辑?
问题描述:
我一直在研究一个应用程序,在主屏幕上有一个电影剪辑ball_1重复自己,只要按下任何按钮,另一个电影剪辑ball_2开始,前一个电影剪辑ball_1消失。我想让ball_2只播放一次,消失并且影片剪辑ball_1返回到主屏幕。我正在使用基于类的脚本。如何使影片剪辑仅播放一次并使用类移动到另一个影片剪辑?
目前代码:
BTN_1.addEventListener(MouseEvent.CLICK,playClip_1);
function playClip_1(e:MouseEvent):void {
ball_2.visible = true;
ball_2.gotoAndPlay(2);
ball_1.visible = false;
}
答
好吧,我觉得这是刚好足够的信息,现在回答这个问题。
首先,你会想要两个功能,一个显示ball_1
,一个显示ball_2
function playClip_1(e:MouseEvent = null):void {
ball_2.visible = true;
ball_2.gotoAndPlay(2);
ball_1.visible = false;
ball_1.stop(); //no sense having it keep playing when not visible
}
//function to call when ball_2 finishes it's timeline
function clip1Complete(e:Event = null):void {
ball_2.visible = false;
ball_1.visible = true;
ball_1.play();
}
现在,您需要一种方法为ball_2调用clip1Complete
功能,当它到达结束的这时间线。
最好的方法,将如上使用事件,在相同的代码情况下,把这个:
ball_2.addEventListener(Event.COMPLETE, clip1Complete);
然后,ball_2
时间表的最后框架上,把这个:
stop;
dispatchEvent(new Event(Event.COMPLETE));
或者,你可以放弃事件监听器,并直接调用该函数的ball_2
像这样在最后一帧:
stop();
MovieClip(parent).clip1Complete();
+0
太棒了!它的作品...非常感谢! –
请显示您当前的相关代码 – BadFeelingAboutThis
BTN_1.addEventListener(MouseEvent.CLICK,playClip_1);函数playClip_1(e:MouseEvent):void {ball_2.visible = true; ball_2.gotoAndPlay(2); ball_1.visible = false; \t \t \t \t}} –
很好,现在,目前的结果是什么?例如。你目前的代码做或不做的事情与你期望的不同?你是否在'ball_2'的时间轴末尾有任何代码向发布的代码表明它已完成播放? – BadFeelingAboutThis