Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex IOErrorEvent逃避捕获_Apache Flex_Actionscript 3 - Fatal编程技术网

Apache flex IOErrorEvent逃避捕获

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是一个简单的函数,如下所示:

我正在开发一个Flex应用程序,它可以处理和显示少量HTML,有时还包括图像。我正在从第三方RSS源中获取HTML。有时,我会在弹出窗口中看到:

Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found. 。。。其中,
[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的加载程序属性

仔细阅读您正在使用的对象的文档,可能存在类似的陷阱

  • IOErrorEvent未冒泡,因此如果其他人正在实现它,则无法捕获或控制它
  • 请找出您正在使用的第三方组件,如果它是开源的,请尝试获取源代码,或者阅读一些文档,或者询问支持人员如何关闭此警报
  • 例如,如果我为flex制作了RSS组件,如果我显示了警报,则会出现错误;如果您使用我的组件,则无论您能做什么,都无法关闭我的错误警报,除非我为您提供了一个布尔开关来关闭它。因此,谁编写了此警报框的代码,这确实是一个问题。不管你做什么,你都不能关掉这东西。除了逆向工程,更改代码并重新编译它,但它应该是合法的

  • IOErrorEvent未冒泡,因此如果其他人正在实现它,则无法捕获或控制它
  • 请找出您正在使用的第三方组件,如果它是开源的,请尝试获取源代码,或者阅读一些文档,或者询问支持人员如何关闭此警报

  • 例如,如果我为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);
             }