Apache flex IOErrorEvent逃避捕获
我正在开发一个Flex应用程序,它可以处理和显示少量HTML,有时还包括图像。我正在从第三方RSS源中获取HTML。有时,我会在弹出窗口中看到: Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found. 。。。其中,Apache flex IOErrorEvent逃避捕获,apache-flex,actionscript-3,Apache Flex,Actionscript 3,我正在开发一个Flex应用程序,它可以处理和显示少量HTML,有时还包括图像。我正在从第三方RSS源中获取HTML。有时,我会在弹出窗口中看到: Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found. 。。。其中,[object]是从呈现HTML的mx:Text对象到其mx:Canvas父对象再到mx:Application顶级应用程序的所有内容,handleIOError是一个简单的函数,如下所示:
[object]
是从呈现HTML的mx:Text对象到其mx:Canvas父对象再到mx:Application顶级应用程序的所有内容,handleIOError
是一个简单的函数,如下所示:
private function handleIOError(event:IOErrorEvent):void {
trace ("IO error occurred: " + event);
}
但到目前为止,什么都没有;那个该死的错误一直出现在Flash播放器中。有人知道我哪里出了问题吗?确保你把事件放在了正确的对象上。我在Flex中没有做过很多远程加载,但在Flash中,一个有趣而恼人的怪癖是,当您使用Loader类加载图像时,您需要放置事件处理程序的对象不是加载程序本身,而是一个名为contentLoaderInfo的加载程序属性
仔细阅读有关您正在使用的对象的文档,可能存在类似的陷阱。确保将事件放在正确的对象上。我在Flex中没有做过很多远程加载,但在Flash中,一个有趣而恼人的怪癖是,当您使用Loader类加载图像时,您需要放置事件处理程序的对象不是加载程序本身,而是一个名为contentLoaderInfo的加载程序属性 仔细阅读您正在使用的对象的文档,可能存在类似的陷阱
例如,如果我为flex制作了RSS组件,如果我显示了警报,则会出现错误;如果您使用我的组件,则无论您能做什么,都无法关闭我的错误警报,除非我为您提供了一个布尔开关来关闭它。因此,谁编写了此警报框的代码,这确实是一个问题。不管你做什么,你都不能关掉这东西。除了反向工程,更改代码并重新编译它,但它应该是合法的。所述弹出窗口将在出错时具有堆栈跟踪。仔细检查,找出错误发生的地方。如果没有,则调试(而不是运行)flex应用程序(F11),flex builder将在其console.Nope中跟踪当前堆栈。即使在调试模式下,弹出窗口和Flex Builder都不会给出堆栈跟踪。所述弹出窗口在出错时也会有堆栈跟踪。仔细检查,找出错误发生的地方。如果没有,则调试(而不是运行)flex应用程序(F11),flex builder将在其console.Nope中跟踪当前堆栈。即使在调试模式下,弹出窗口和Flex Builder都不会给出堆栈跟踪。1)哦,该死的。虽然我应该猜到;这当然与我看到的行为一致。谢谢,这是我以前没有的信息。2) 但我没有使用任何第三方组件。HTML是第三方的(这意味着“向吸收较少的应用程序HTML提供”并不是真正的解决方案),但(显然)吐出IOErrorEvent的组件是一个简单的mx.controls.Text对象。澄清:从技术上讲,“向吸收较少的应用程序HTML提供”实际上是一个解决方案,如果我对HTML中的任何URL执行有效性检查,并拔掉任何看起来给我带来麻烦的URL。但对我来说,这闻起来是非常劳动密集型的;我仍然希望找到一个能满足我懒惰感的解决方案。你能发布你在URL上做的验证检查的代码吗?我还没有做任何有效性检查,我宁愿不做;这是我的观点。我需要尝试加载每个URL并捕获其中的任何错误,然后设置一个计时器,以便在加载完成时,URL可以标记为OK。除非我遗漏了什么(总是可能的),否则这听起来像是一个代码配方,使用起来一点都不愉快。我更愿意捕捉HTML呈现过程中出现的错误,但我调查得越多,就越怀疑这是不可能的。1)噢,该死的。虽然我应该猜到;这当然与我看到的行为一致。谢谢,这是我以前没有的信息。2) 但我没有使用任何第三方组件。HTML是第三方的(这意味着“向吸收较少的应用程序HTML提供”并不是真正的解决方案),但(显然)吐出IOErrorEvent的组件是一个简单的mx.controls.Text对象。澄清:从技术上讲,“向吸收较少的应用程序HTML提供”实际上是一个解决方案,如果我对HTML中的任何URL执行有效性检查,并拔掉任何看起来给我带来麻烦的URL。但对我来说,这闻起来是非常劳动密集型的;我仍然希望找到一个能满足我懒惰感的解决方案。你能发布你在URL上做的验证检查的代码吗?我还没有做任何有效性检查,我宁愿不做;这是我的观点。我需要尝试加载每个URL并捕获其中的任何错误,然后设置一个计时器,以便在加载完成时
private function handleIOError(event:IOErrorEvent):void {
trace ("IO error occurred: " + event);
}