3

Actionscript 3.0 参考中的 Loader 文档似乎自相矛盾。

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

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

但随后文档继续说:

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

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

我很想听听更经常处理这些事件的人的意见,并且可以澄清关于这一点的文档。以下是我关于此文档和流程的具体问题:

  • completeinit事件的含义有什么区别?
  • 文档在这里使用“事件”和“处理程序”这两个词重要吗?即“此 [ init] 事件在complete处理程序之前调度。” 这是否告诉我们在事件也被分派complete之前推迟处理事件?init

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

4

1 回答 1

1

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

Event.COMPLETE文档说:

数据加载成功时调度。换句话说,它是在所有内容都已下载并且加载完成时调度的。complete事件总是在init事件之后调度 。当对象准备好访问时,将调度init事件,尽管内容可能仍在下载。

简化解释:

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

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

于 2013-01-22T16:52:39.630 回答