提供SWF/SWC資產的運行時或編譯時間解析和處理,以供OpenFL使用。然後可以將SWF內容用於設計或(beta)動畫,以在Web和Native Technologies中部署到桌面,Web,移動和控制台目標的項目中。
將此庫用於靜態設計內容具有生產記錄。使用此庫進行動畫應視為beta,並且不得優化以進行性能。歡迎提高性能的貢獻!
庫中有三個主要代碼路徑:
類型“ SWF”提供SWF/SWC格式的完整解析(基於Claus Wahlers的原始AS3SWF庫)。該代碼主要以完整性和準確性而不是性能進行優化。 SWF完全解析後,它可以將其導出到新的運行時優化格式(SWFLITE,Animate),或者有一個基本實現,可在運行時直接使用解析的SWF內容。那些有興趣改善此代碼路徑的人可能有興趣查看https://github.com/openfl/openfl-player,以開始測試和改善運行時SWF加載和播放。
類型“ Swflite”是一種較舊的出口商格式,以前集成在OpenFL中。該代碼主要是出於歷史原因而存在於該庫中。使用“ SWF”代碼路徑解析SWF內容後,在HAXE序列化器的幫助下生成了一種新格式。儘管基於格式的運行時文件大小和性能改進,但對HAXE序列化的依賴卻偏向於向後兼容。
鍵入“ Animate”是最新的出口商格式,也是所有目標的默認格式。它結合了“ swflite”格式的好處,同時寫入JSON並將所有資產壓縮到單個ZIP文件中。它可以在保持向後兼容性的同時進行迭代改進。 Macromedia SWF格式也具有這些好處,但是它針對與現代Web瀏覽器不同的運行時進行了優化。例如,Macromedia SWF文件中的圖像可能已經將Alpha應用於位圖。沒有快速的方法可以使用HTML5畫布正確渲染。動畫庫格式提供了一個機會,可以將PRECESS SWF內容預先為現代生產使用優化的靈活格式。
該庫可以由OpenFL /Lime命令行工具自動調用,以處理<library />標籤,也可以在命令行上使用它來將SWF文件處理到動畫zip文件中。
首先,確保已將<haxelib name="swf" />添加到您的項目中。
然後,您可以添加<library path="to/your.swf" preload="true" />以包含SWF庫。使用SWF的文件名(減去“ .swf”)在運行時可用,也可以添加id="my-unique-id"來指定自定義名稱。
generate="true"有一個(beta)選項,用於在SWF文件中為每個“導出”類型生成HAXE類。 preload也是可選的,但建議簡化使用。
您可以從SWF這樣的SWF創建“ for ActionScript”剪輯:
var clip = Assets . getMovieClip ( " my-swf:MyMovieClipName " );如果您希望創建整個時間表,請使用一個空剪輯名稱:
var timeline = Assets . getMovieClip ( " my-swf: " );如果使用“生成”選項,則將創建一個類似的新實例:
var clip = new MyMovieClipName ();您還可以從命令行處理文件,並稍後加載:
haxelib run swf process
haxelib run swf process path/to/swfs
haxelib run swf process test.swf
haxelib run swf process test.swf path/to/test.zip
haxelib run swf process test.swf output/path例如:
haxelib run swf process test.swf這將生成一個“ test.zip”文件,稍後可以在運行時加載:
import swf . exporters . animate . AnimateLibrary ;
import openfl . utils . Assets ;
...
AnimateLibrary . loadFromFile ( " path/to/test.zip " ). onComplete ( function ( library )
{
var clip = library . getMovieClip ( " MyMovieClipName " );
// or
Assets . registerLibrary ( " my-swf " , library );
var clip = Assets . getMovieClip ( " my-swf:MyMovieClipName " );
});您可以使用Haxelib輕鬆安裝SWF:
haxelib install swf
要將其添加到石灰或OpenFL項目中,請將其添加到您的項目文件中:
<haxelib name="swf" />
克隆SWF存儲庫:
git clone https://github.com/openfl/swf
告訴haxelib您的SWF的開發副本已安裝在哪裡:
haxelib dev swf swf
重建SWF庫工具:
```bash
openfl rebuild tools
# or
cd swf
haxe rebuild.hxml
```
返回發布版本:
haxelib dev swf