我正在尝试制作一部Flash电影,其中包含多个影片剪辑 的影片剪辑 (例如,假设为“root”) “孩子们”。 每个孩子都有一个mp3播放器。 现在,我已经设置了一个孩子 mp3播放按钮并编写了以下操作:
movieClip_2.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndPlayFromFrame);
function fl_ClickToGoToAndPlayFromFrame(event:MouseEvent):void{
gotoAndPlay(2);
}
直到这里工作得很好。 现在我想设置一下,每次播放按钮点击任何一个孩子时,root将停止移动,直到 mp3 文件完成播放。
实现它的最佳方式是什么?
答案 0 :(得分:0)
当mp3完成播放时,SoundChannel
类会发送flash.events.Event.SOUND_COMPLETE
事件。因此,孩子们可以重新发送这个事件,root可以听取它并实现你想要的。
<强>更新强>
此方法的强制取决于mp3播放器的实现。举个例子:
//In a child
var sound:Sound = new Sound();
var soundChannel:SoundChannel;
var request:URLRequest = new URLRequest("my_sound.mp3");
// Sound events listeners
soundChannel.addEventListener(Event.SOUND_COMPLETE, soundChannel_soundCompleteHandler);
sound.load(request);
soundChannel = sound.play();
soundChannel_soundCompleteHandler(event:Event):void {
dispatchEvent(event);
}
//Somewhere in the root
mp3Child.addEventListener(Event.SOUND_COMPLETE, mp3Child_soundCompleteHandler);