1. 首頁
  2. 求職

swf是什麼格式-swf的結構

swf是什麼格式-swf的結構

swf這個詞,相信大家都比較陌生,那麼這是什麼格式呢?以下是PINCAI小編整理的關於SWF格式的相關內容,歡迎閱讀和參考!

swf是什麼格式_swf的結構

swf是什麼格式

swf(shock wave flash)是Macromedia(現已被ADOBE公司收購)公司的動畫設計軟體Flash的專用格式,被廣泛應用於網頁設計、動畫製作等領域,swf檔案通常也被稱為Flash檔案。swf普及程度很高,現在超過99%的網路使用者都可以讀取swf檔案。這個檔案格式由FutureWave建立,後來伴隨著一個主要的目標受到Macromedia支援:創作小檔案以播放動畫。計劃理念是可以在任何作業系統和瀏覽器中進行,並讓網路較慢的人也能順利瀏覽。swf 可以用Adobe Flash Player開啟,瀏覽器必須安裝Adobe Flash Player外掛。

SWF的結構

第1節

swf檔案的整體結構是 header + body的組成。

檔案的開始是一個[檔案頭]

它的結構如下:

位元組 名稱 說明

1 Signature

“F”表示非加密格式,”C”表示加密格式

1 Signature “W”無特殊意義

1 Signature “S”無特殊意義

1 Version 版本號,它表示對應播放器版本

4 FileLength 整個檔案長度,低位在前

N FrameSize

RECT結構體,表示螢幕大小,具體結構和長度根據資料變化,分析方法另外討論。

2 FrameRate 幀頻,預設為12,高位在前

2 FrameCount

幀數,表明檔案根下的幀數,低位在前

以上是swf中,最簡單的一個tag,一個完整的swf檔案是由很多獨立的tag組成的。每一個tag都包括一個頭和一個數據體,頭有2種類型,短tag型和長-tag型。

短tag型由2byte構成,前10個bit表示tag型別,後6個bit表示tag長度。

長tag型由6byte構成,前10個bit表示tag型別,後6個bit固定為全1,後4個byte代表tag長度。

tag的長度不同於檔案頭的長度FileLength,它是除去tag頭後的長度。

(另外)只有非加密的swf檔案可以直接用以上的方法解析,加密的檔案需要另外增加一步處理。

第2節

前節說明了swf檔案是由1個head和1個body構成的。

並且解析了header的結構,和一個tag的header部分的簡單說明。

下面餘下的就是swf檔案的body了。

整個檔案body是由大量的tag組成的',透過分析tag的head部分,可以立刻知道這個tag的型別程式碼和長度。

如果你無法識別這個tag的型別,也可以利用tag的長度,直接跳過這個tag。

這種方式保證了版本的相容性,即使出現了新的tag,老版本的播放器還是能夠解析完整個swf檔案而不出現錯誤,大不了就是不能提供新的功能而已。