2013-01-22 37 views
3

documentation for Loader in the Actionscript 3.0 reference似乎自相矛盾。在文件完成下載但加載的影片剪輯的方法和屬性尚不可用使用Loader時完整和init事件之間的關係是什麼?

  • complete事件被調度,但。

按照第一點,complete事件意味着文件已經完成下載。我們正在加載一個swf文件並使用complete事件來表明它已被加載。但是我們發現,在某些情況下,我們正在加載的資源不適用於我們。文檔中的這一行對我們來說很重要,因爲我們爲什麼會遇到這個問題,並且我們打算改用init事件。

但隨後的文件接着說:

  • init事件的屬性和加載的SWF文件的方法之後分派的訪問,這樣你就可以開始操作加載的SWF文件。此事件在complete處理程序之前分派。在流式SWF文件中,init事件可能比完整事件發生得早得多。對於大多數用途,請使用init處理程序。

這也是情理之中的我們,除了上面說的init事件在complete處理程序之前分派。這對我們來說沒有意義,因爲這似乎與它自相矛盾。如果在加載的影片剪輯的方法和屬性可用之前調度了complete事件,並且在加載的SWF文件的屬性和方法可訪問後調度了init事件,那麼init事件如何在complete事件之前分派?

我很樂意聽到經常與這些事件合作的人,並且可以澄清關於這一點的文檔。下面是我對這個文檔和過程中的具體問題:

  • 是什麼completeinit事件的意義有什麼區別?
  • 文檔在這裏使用「event」和「handler」這個詞是重要的嗎?即「這個事件在complete處理程序之前被分派」。這是否告訴我們暫緩處理complete事件,直到init事件也被調度?

該文檔還明確指出:「對於大多數用途,請使用init處理程序。」所以至少我們期望將我們的軟件從使用complete改爲使用init來代替。我們可能會等待兩者,特別是如果我們在測試中看到它們以不同的順序出現的話。但我仍然在這裏尋找一些理智。希望有人能提供這個?

+1

這很奇怪,很好發現。我認爲'complete'描述中的「but ...」只是一個錯誤,因爲我相當肯定我從來沒有在'init'之前看到'完全的'fire,並且事件本身的描述(在Loader.load()部分)更清晰。 –

回答

1

不應該將事件偵聽器連接到Loader的LoaderInfo對象嗎?

的Event.COMPLETE documentation說:

當成功加載數據後調度。換句話說,當所有內容已經被下載並且加載 完成時分派 。 完成事件總是在初始化 事件後發送。 init事件在對象準備好訪問 時調度,但內容可能仍在下載。

簡化解釋:當第一幀的所有 '層'(包括代碼和資產)裝入

  • Event.COMPLETE被分派時

    • 調度Event.INIT所有框架都已完成加載。

  • 相關問題