2011-08-17 77 views
2

瀏覽器如何加載Flash文件?它們是逐步加載的,還是瀏覽器在顯示之前一直等到整個Flash文件被加載?瀏覽器如何加載Flash文件? (swf)

原因是我有一個非常高質量的剪輯,只有幾秒鐘,但它超過了4 MB。

用戶在觀看前是否必須等待全部4 MB已加載?或者當用戶觀看時加載?

我沒有做任何事情,我只是將.flv導入到Flash中,並以.swf格式導出。

先進的謝謝

+0

作爲新用戶的問題做得很好。 – zzzzBov

回答

4

加載Flash文件有很多部分,更一般地說,是一個HTML頁面。

我打算從HTML頁面的頂部開始,我敦促其他人糾正我可能犯的錯誤。

加載頁面

當接收到一個HTML頁中,瀏覽器將其解析爲文檔對象模型(DOM),以便它具有的每一個元素的方案表示。瀏覽器迭代DOM樹中的每個節點並根據需要填充它。

對於大多數節點,這只是簡單地創建一個新的DOM元素,如div,pa;但是有些內容需要加載或更換。

表單元素(input,select,button,textarea)被這些表單字段的瀏覽器特定表示替換。

link用作樣式表的元素是異步加載的。隨着外部資源的加載,DOM繼續解析頁面。

script另一方面,元素被同步加載。在腳本完成加載和執行之前,DOM不能繼續解析該樹,除非加載失敗或執行出錯,否則將例外。

img元素是異步加載的,但允許onload回調來確定它們何時完成加載。 DOM無法觸發窗口的onload事件,直到所有img元素都完成加載(或失敗)。

瞭解基本元素有助於理解更多涉及的元素,如object,embediframe,它們也被替換的內容。

Flash通常使用object,embediframe嵌入在網頁上。

據我所知,objectembed元素反應同樣如此,我將快捷方式,並從這裏開始了說object

iframeobject元素之間的加載閃存有明顯的區別。

object元素與script元素非常相似,其中內容必須在繼續解析DOM之前成功加載並執行。

iframe元素是非常相似的,其中的內容異步加載的img元素,但回調可以被用來確定當加載完成(雖然我不知道的回調是否可用於交 - 域名請求)

加載的Flash

上一節討論只是內容加載的HTML側。但是,閃光燈內存在許多細微差別,可能會嚴重影響閃光燈電影的加載時間。

如前所述,script元素必須完全加載才能繼續解析DOM。在Flash文件中可以找到類似的效果(即使通過iframe進行了包含)。嵌入在swf內的所有資源必須在swf可以釋放對頁面加載進度的保留之前加載。

如果你嵌入視頻直接到時間線中,整個視頻必須加載閃存前,可以考慮做其初始執行。

如果您選擇使用異步回調開始加載恰好是視頻的外部資源,並使用異步加載器加載視頻,則無需等待視頻爲在可以加載頁面的其餘部分之前完成加載;在閃光燈內,在開始播放視頻之前,您仍然需要等待視頻完成加載。

或者,Flash中有很多方法可以用於流式傳輸視頻,也可以逐漸從服務器加載視頻,這將使視頻在未完成加載的情況下播放。 我對閃光的特定方面的經驗是最小的,所以我不會解釋如何它完成

使用像swfobject這樣的庫,可以異步加載期望的swf,以便閃存加載無阻塞。

tl; dr:

Flash文件可能會根據您如何構建HTML以及在swf中運行什麼代碼而逐步加載。

你可能想看看swfobject

+0

+1深思熟慮答案 –

+0

謝謝你那個非常透徹的答案。只是爲了確認:我使用的是swfobject,即使我的視頻只在一個幀上,視頻仍然會逐漸加載,這是否意味着? – David

+0

如果您正在討論*回放*,這取決於您如何在Flash文件中設置對mp4(或其他格式)的引用*。如果您只在一幀中獲得視頻,則必須等待Flash文件加載才能播放視頻,但* flash *將通過swfobject逐步加載。我建議在某種遠程主機上測試視頻,看看究竟發生了什麼,而不是猜測可能會發生什麼。 – zzzzBov

0

它會首先加載整個電影。因此,讓視頻成爲電影在運行時加載的外部文件。

1

SWF文件被加載逐漸(因此裝載機槓「加載了50%」的消息和這樣的)。

歷史上,Flash文件基於幀,並且如果主時間軸具有多個幀,那麼一旦加載完整文件,它們將在載入整個文件之前按順序加載和顯示。但是,現在大多數Flash內容不是以這種方式構建的,並且比按順序顯示的一系列幀更復雜。除了基本幀模式外,視頻播放還增加了複雜性,包括視頻編解碼器,音頻同步等。

所以,這個問題的答案「難道他們逐漸加載,或做瀏覽器等待,直到整個Flash文件顯示前裝?」是他們逐步加載並顯示之前整個SWF文件被加載。但是,這將如何影響用戶體驗視頻的方式,如果沒有看到它或者如何構建,很難說清楚。

相關問題