У меня есть немного затруднения.Мне нужно вызвать функцию внутри мувиклипа, как только закончится воспроизведение определенного звука.Звук воспроизводится через звуковой канал во внешнем классе, который я импортировал.Воспроизведение работает отлично.
Вот соответствующий код из моего внешнего класса, Sonus.
public var SFXPRChannel:SoundChannel = new SoundChannel;
var SFXPRfishbeg:Sound = new sfxpr_fishbeg();
var SFXPRfishmid:Sound = new sfxpr_fishmid();
var SFXPRfishend3:Sound = new sfxpr_fishend3();
var SFXPRfishend4:Sound = new sfxpr_fishend4()
public function PlayPrompt(promptname:String):void
{
var sound:String = "SFXPR" + promptname;
SFXPRChannel = this[sound].play();
}
Это вызывается через импорт в класс документа "osr", таким образом я получаю к нему доступв моем проекте через "osr.Sonus .---"
В моем проекте у меня есть следующая строка кода.
osr.Sonus.SFXPRChannel.addEventListener(Event.SOUND_COMPLETE, promptIsFinished);
function prompt():void
{
var level = osr.Gradua.Fetch("fish", "arr_con_level");
Wait(true);
switch(level)
{
case 1:
osr.Sonus.PlayPrompt("fishbeg");
break;
case 2:
osr.Sonus.PlayPrompt("fishmid");
break;
case 3:
osr.Sonus.PlayPrompt("fishend3");
break;
case 4:
osr.Sonus.PlayPrompt("fishend4");
break;
}
}
function Wait(yesno):void
{
gui.Wait(yesno);
}
function promptIsFinished(evt:Event):void
{
Wait(false);
}
osr.Sonus.PlayPrompt (...)и gui.Wait (...) оба работают отлично, так как я использую их в других контекстах в этой части проекта без ошибок.
По сути, после завершения воспроизведения звука мне нужно Wait (false);вызывается, но слушатель события, похоже, не «слышит» событие SOUND_COMPLETE.Я где-то допустил ошибку?
Для записи, из-за структуры моего проекта, я не могу вызвать соответствующую функцию Wait (...) из Sonus.
Справка?