错误#2037:以错误顺序调用的函数或早先的调用未成功
当我第二次或第三次调用playThatSound()函数时,我得到上述错误..等等。 (不是第一次)
我正在使用Flex SDK,使用FDT编辑器
代码:
var sound_Snd:Sound = new Sound() //definition inside the class
function playThatSound():void
{
sound_Snd.load( new URLRequest( <pathvalue>)) ;
sound_Snd.play();
}
但是我通过重新定义sound_Snd来消除这个错误,如下所示:
function playThatSound():void
{
sound_Snd = new Sound(); //redefined everytime when function is called
sound_Snd.load( new URLRequest( <pathvalue>)) ;
sound_Snd.play();
}
但是,我需要知道,以防万一我不想在每个函数调用中一次又一次地重新定义它。当使用Sound类的加载和播放功能时,是否有我遗漏的东西。
答案 0 :(得分:3)
Sound.load()
的文档说明了这一点:
在Sound对象上调用load()后,您无法再加载不同的声音 将文件放入该Sound对象。要加载其他声音文件,请创建一个新声音 对象
它还说:
如果您向Sound构造函数提供有效的URLRequest对象,则 构造函数为您调用Sound.load()。你只需要调用Sound.load() 如果您没有将有效的URLRequest对象传递给Sound构造函数或者 你传递一个空值。
因此,如果您明确致电load()
或向URLRequest
构造函数提供有效的Sound
,无论哪种方式,您都会随时创建新的Sound
对象你想改变网址。
此外,我能够使用两次使用相同的URL生成此内容,并且我能够通过创建新的Sound
对象或者不尝试重新加载URL来修复它,所以显然它没有'无论URL是相同还是不同。无论是否使用相同的URLRequest
对象,我都会崩溃,因此您必须创建新的Sound
对象,或者不要调用load()
。