基本信息
SWF是一種基於矢量的Flash動畫檔案格式,一般用
FLASH軟體創作並生成
SWF檔案格式,也可以通過相應軟體將PDF等類型轉換為
SWF格式。SWF格式檔案廣泛用於創建吸引人的應用程式,它們包含豐富的視頻、聲音、圖形和動畫。可以在Flash中創建原始內容或者從其它
Adobe應用程式(如
Photoshop或Illustrator)導入它們,快速設計簡單的動畫,以及使用Adobe AcitonScript 3.0開發高級的互動式項目。設計人員和開發人員可使用它來創建演示文稿、應用程式和其它允許用戶互動的內容。Flash可以包含簡單的動畫、視頻內容、複雜演示文稿和應用程式以及介於它們之間的任何內容。通常,使用Flash創作的各個內容單元稱為
應用程式,即使它們可能只是很簡單的動畫。您也可以通過添加
圖片、
聲音、
視頻和特殊效果,構建包含豐
富媒體的Flash應用程式。
如何播放SWF:
可以利用FLASH控制項實現播放FLASH的SWF檔案,常用的第三方軟體(如:實用Flash播放器、超級Flash播放器、SWF Flash Player)可以直接在主流下載站下載後並安裝,即可使用。
檔案結構
第1節
swf檔案的
整體結構是 header + body的組成。
它的結構如下:
1 Signature
1 Signature “W”無特殊意義
1 Signature “S”無特殊意義
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檔案而不出現錯誤,大不了就是不能提供新的功能而已。
SWF填充
SWF檔案格式支持三個基本類型的填充。
實心填充
SWF一個簡單的
RGB或
RGBA顏色填充。一個alpha值255指完全不透明的填充。SWF一個alpha值為零意味著完全透明填充。0和255之間的任何數字,將部分透明。
漸變填充
點陣圖填充
SWF點陣圖填充是指一個點陣圖character Id來填充。
格式轉換
SWF檔案可以通過PDF等類型的檔案轉換而來,事實上我們往往通過將doc、ppt、PDF等類型轉換為SWF類型來實現線上預覽功能。常用的swf格式轉換器有FlashPrinter,swftools等。FlashPrinter採用虛擬印表機的形式,可以直接將doc、ppt等類型的檔案轉換為SWF格式。Swftools只能將PDF轉換為SWF格式,對於doc等類型的轉換需要先轉變為PDF格式。