任何帮助将不胜感激。
我正在加载这样的声音:
var mySound:Sound = new Sound();
mySound.load(new URLRequest("audio/filename.mp3"));
mySoundChannel:SoundChannel = mySound.play();
然后,我添加一个侦听器,并尝试使用SOUND_COMPLETE事件调用一个函数,如下所示:
mySoundChannel.addEventListener(Event.SOUND_COMPLETE,audioComplete);
function audioComplete(Event:Event){
trace("done!");
}
但是,我不断收到此错误:“找不到1046:Type或不是编译时常量:Event。”
谁能给我提示我做错了什么?
谢谢。
最佳答案
更改
function audioComplete(Event:Event){
至
function audioComplete(event:Event){
AS区分大小写。
event
与Event
不同。 Event
是类的名称。 event
是您分配给Event
类型的本地变量的名称此外,声音会异步加载到Flash中。这意味着,当您调用
sound.load()
时,Flash Player将开始在新线程上加载声音,并在加载声音时继续下一行代码。声音完全加载时,将触发Event.COMPLETE
事件,声音播放完毕后,将触发 NOT 。要在声音播放完毕后触发功能,请使用
setTimeout
var mySound:Sound = new Sound();
mySound.load(new URLRequest("audio/filename.mp3"));
mySound.addEventListener(Event.COMPLETE, soundLoaded);
function soundLoaded(e:Event):void {
mySound.play();
setTimeout(audioComplete, mySound.length);
}
function audioComplete(){
trace("done!");
}
关于actionscript-3 - AS3在第一个音频文件完成播放后播放第二个音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7773581/