About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Jun

    26

    1、在 IE 控件版本中所有加载操作都触发 Event.OPEN 事件,即使事件最终由于 "file not found" 情况发生,也会触发 Event.OPEN 事件。但在独立的播放器环境、AIR 环境或 FireFox 插件版中,如果 “file not found” 情况发生了,那么就不会发生 Event.OPEN 事件(虽然 Colin Moock 在 2007 年写的《Essential ActionScript 3.0》有写到这种播放器特定环境的特定行为,将来可能会被标准化,但本人在2012年6月经实际测试 Flash Player 11.3中仍然还是未被统一的)。

    2、IOErrorEvent 实例变量 text 会因为 “file not found” 情况的发生在不同的播放器环境中拥有不同的值。在IE控件版本中,text变量被设置为 "Error #2036: Load Never Completed." ,但在独立的播放器环境、AIR 环境或 FireFox 插件版本中,这个变量会被设置为"Error #2035: URL Not Found."。

    所以 Event.OPEN 事件与 IOErrorEvent 实例变量 text 仅可用于调试的目的,如在生产版本中,应避免使用。可按 Moock 所写的一个技巧,通过自定义的业务逻辑实现一个 load 方法,在加载一开始就调用本来应该由 Event.OPEN 事件来执行的侦听器。

    private function load (urlRequest:URLRequest):void {
     loader.load(urlRequest);
     //progressOutput表示一个自定义的进程指示器
     if (!contains(progressOutput)) {
      addChild(progressOutput);
     }
    }

    More...