如何处理使用 Flex Sound 类加载时出现的错误
-
09-06-2019 - |
题
我在 Flex 3 中看到 flash.media.Sound 类的奇怪行为。
var sound:Sound = new Sound();
try{
sound.load(new URLRequest("directory/file.mp3"))
} catch(e:IOError){
...
}
但这没有帮助。我收到一个流错误,它实际上出现在 Sound 构造函数中。
错误#2044:未处理的 IOErrorEvent:。文本=错误#2032:流错误。在...]
我在 Flex 文档中看到一个示例,其中他们为 IOErrorEvent 添加了一个事件侦听器,我当然不必这样做,并且可以简单地使用 try-catch 吗?我可以设置一个空事件监听器吗?
解决方案
IO错误 = 找不到目标文件(或由于某些其他原因无法读取)。检查你的文件的路径。
编辑:我刚刚意识到这可能不是你的问题,你只是想捕获 IO 错误?如果是这样,您可以这样做:
var sound:Sound = new Sound(); sound.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); sound.load(new URLRequest("directory/file.mp3")); function ioErrorHandler(event:IOErrorEvent):void { trace("IO error occurred"); }
其他提示
由于 URLRequest 不是即时的,因此您需要添加一个侦听器。这将是 非常 如果您从磁盘加载,速度会很快,但您仍然需要事件侦听器。有一个很好的例子说明如何设置它(完成 IOErrorEvent 处理) 实时文档.
try...catch 仅适用于调用该函数时引发的错误。任何涉及从网络、磁盘等加载内容的方法都是异步的,也就是说,它不会在您调用它时正确执行,而是在您调用它后不久就会发生。在这种情况下,您确实需要 addEventListener 来捕获任何错误或事件或知道它何时完成加载。
不隶属于 StackOverflow