Я пишу класс воспроизведения звука, который останавливает старый звук и воспроизводит новый звук. После этого мне нужен дополнительный метод в этом классе, который запускается, когда воспроизведение звука завершено. Я успешно достигаю этого, но мне нужно сообщить об этом Основное приложение (main.mxml) о завершении воспроизведения этого звука.
Как мне это сделать? Заранее спасибо.
вот мой класс воспроизведения звука.
package com.m2b.data
{
import flash.events.Event;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundMixer;
import flash.net.URLRequest;
import mx.controls.Alert;
public class SoundPlayback
{
private var channel:SoundChannel = new SoundChannel();
private var sm:SoundMixer = new SoundMixer();
public var snds:Sound;
public function SoundPlayback()
{
// constructor function
}
/** call if need to close all previous sound and play new one **/
public function playSound():void{
// the StopAll method is used to close/shutdown all sound
// in that domin that are describe in that cross doamin
SoundMixer.stopAll();
// play the new sound.
channel = snds.play();
channel.addEventListener(Event.SOUND_COMPLETE, soundcomplete);
}
/** call when the new sound is play without stop old sounds**/
public function playAllSound():void{
// play the new sound.
channel = snds.play();
}
private function soundcomplete(e:Event):void{
Alert.show('<<<< complete >>>>>>');
}
}
}
и здесь мы используем функцию, которая передает звук obj как параметр в класс, а затем вызывает метод воспроизведения звука для воспроизведения звука.
//tahir - play the sound (close all previous sound and play new one)
private var soundPlayer:SoundPlayback = new SoundPlayback();
private function welcomePackage():void{
soundPlayer.snds = loaderQueue.getSound('CV-welcome'+randomNumber(1,3));
soundPlayer.playSound();
}
Спасибо.