使用Loader时,complete事件和init事件之间有什么关系?

时间:2013-01-22 15:51:06

标签: actionscript-3 events flash

documentation for Loader in the Actionscript 3.0 reference似乎与自相矛盾。

  
      
  • 当文件完成下载时,但在加载的影片剪辑的方法和属性可用之前,将调度complete事件。
  •   

根据第一点,complete事件表示文件已完成下载。我们正在加载swf文件,并使用complete事件表示已加载。然而,我们发现在某些情况下,我们无法获得正在加载的资源。文档中的这一行对我们来说很有意义,因为我们遇到了这个问题,并且我们计划转而使用init事件。

然后文件继续说:

  
      
  • 在加载的SWF文件的属性和方法可访问后调度init事件,因此您可以开始操作加载的SWF文件。此事件在complete处理程序之前调度。在流式SWF文件中,init事件可能比完整事件更早发生。在大多数情况下,请使用init处理程序。
  •   

这对我们来说也很有意义,只是它说init事件是在complete处理程序之前调度的。这对我们没有意义,因为这似乎与自己相矛盾。如果在加载的影片剪辑的方法和属性可用之前调度complete事件,并且在加载的SWF文件的属性和方法可访问后调度init事件,则{{1}如何调度1}}事件在init事件之前调度?

我很想听到更频繁地处理这些事件的人,并且可以澄清关于这一点的文档。以下是有关此文档和过程的具体问题:

  • completecomplete事件的含义有何区别?
  • 文档在这里使用“event”和“handler”这两个词是否很重要?即“在init处理程序之前调度此[init]事件。”这是否告诉我们在调度complete事件之前暂停处理complete事件?

文档还明确指出,“对于大多数用途,请使用init处理程序。”因此,我们至少期望将我们的软件从使用init更改为使用complete。我们可能只是等待两者,特别是如果我们看到它们在我们的测试中有不同的顺序。但我仍然在寻找一些理智。希望有人可以提供这个吗?

1 个答案:

答案 0 :(得分:1)

不应该将事件侦听器附加到Loader的LoaderInfo对象吗?

Event.COMPLETE documentation说:

  

成功加载数据后调度。换句话说,它是   在下载所有内容并加载后调度   已完成。始终在 init 之后调度完整事件   事件。当对象准备好时,将调度 init 事件   访问,虽然内容可能仍在下载。

简化说明:

  • 当第一帧的所有“图层”(包括代码和资源)都已加载时调度Event.INIT

  • 在所有帧完成加载后调度Event.COMPLETE。