Actionscript 3 as3停止声音删除事件侦听器?
我有一个问题,停止一个声音,然后启动它回来。在我停止声音并再次启动之后,eventListener似乎消失了 现在“简单”的解决方法似乎只是在再次启动声音时“添加”另一个。 这是不容易做到的,因为“祈祷”的声道有动态的听者 添加了一个不同的函数,在每个函数末尾调用。所以我必须知道向它添加了什么侦听器,以及完成后应该调用什么函数 同样,我只想用鼠标点击“暂停”当前的祈祷,然后再点击一次,在同一地点启动它。但问题是,它删除了eventListener,并给出了声音播放完毕后的操作说明 有没有关于工作的想法?或者这是一个简单的解决方案Actionscript 3 as3停止声音删除事件侦听器?,actionscript-3,audio,event-listener,soundchannel,Actionscript 3,Audio,Event Listener,Soundchannel,我有一个问题,停止一个声音,然后启动它回来。在我停止声音并再次启动之后,eventListener似乎消失了 现在“简单”的解决方法似乎只是在再次启动声音时“添加”另一个。 这是不容易做到的,因为“祈祷”的声道有动态的听者 添加了一个不同的函数,在每个函数末尾调用。所以我必须知道向它添加了什么侦听器,以及完成后应该调用什么函数 同样,我只想用鼠标点击“暂停”当前的祈祷,然后再点击一次,在同一地点启动它。但问题是,它删除了eventListener,并给出了声音播放完毕后的操作说明 有没有关于工作
/// EXAMPLE 1
Praying = OFE.play();
Praying.addEventListener(Event.SOUND_COMPLETE, prayDecade );
/// EXAMPLE 2
Praying = JES.play();
Praying.addEventListener(Event.SOUND_COMPLETE, doSomethingElse);
public function togglePraying(e:Event = null)
{
if(nowPraying)
{
Praying.stop();
nowPraying = ! Praying;
trace("Praying: " + currentSound);
}
else
{
Praying = currentSound.play();
nowPraying = ! Praying;
trace("Praying: " + Praying);
}
}
这是正常的,当您调用OFE.play()时,您会得到一个SoundChannel引用,如果您下次调用它,您会得到一个新引用。您需要再次注册事件,但不要忘记删除侦听器
if(nowPraying)
{
Praying.removeEventListener(Event.SOUND_COMPLETE, doSomethingElse);
Praying.stop();
nowPraying = ! Praying;
trace("Praying: " + currentSound);
}
显然,您还将
nowPraying
设置为错误的值,您应该有nowPraying=!现在开始
。