OpenFLで使用するために、SWF/SWCアセットのランタイムまたはコンパイル時間の解析と処理を提供します。その後、SWFコンテンツは、デスクトップ、Web、モバイル、およびネイティブテクノロジーの両方でデスクトップ、Web、モバイル、コンソールのターゲットに展開されたプロジェクトでデザインまたは(ベータ)アニメーションに使用できます。
静的設計コンテンツにこのライブラリを使用すると、実績があります。アニメーションのためにこのライブラリを使用することはベータ版と見なされるべきであり、パフォーマンスに最適化されない場合があります。パフォーマンスを改善するための貢献は大歓迎です!
ライブラリ内には3つの主要なコードパスがあります。
タイプ「SWF」は、SWF/SWC形式の完全な解析を提供します(Claus Wahlersによる元のAS3SWFライブラリに基づく)。このコードは、主にパフォーマンスではなく完全性と精度のために最適化されています。 SWFが完全に解析されると、新しいランタイム最適化形式(Swflite、Animate)にエクスポートするか、ランタイムで解析されたSWFコンテンツを直接使用するために利用可能な初歩的な実装があります。このコードパスの改善に関心のある人は、ランタイムSWFの読み込みと再生のテストと改善の開始としてhttps://github.com/openfl/openfl-playerを見ることに関心があるかもしれません。
タイプ「Swflite」は、以前にOpenFLに統合されていた古い輸出業者形式です。このコードは、主に歴史的な理由でこのライブラリに存在します。 「SWF」コードパスを使用してSWFコンテンツを解析した後、HAXEシリアイザーの助けを借りて新しい形式が生成されました。フォーマットに基づいたランタイムファイルサイズとパフォーマンスの改善にもかかわらず、HAXEシリアル化への依存は、後方互換性に欠点がありました。
タイプ「Animate」は最新の輸出業者形式であり、すべてのターゲットのデフォルトです。 JSONに書き込み、すべての資産を単一のZIPファイルに圧縮しながら、「Swflite」形式の利点を組み合わせます。後方互換性を維持しながら、繰り返し改善できます。 MacRomedia SWF形式にはこれらの利点もありますが、最新のWebブラウザーとは異なるランタイム用に最適化されています。たとえば、Macromedia SWFファイルの画像には、すでにビットマップに適用されている可能性があります。 HTML5キャンバスを使用してこれを適切にレンダリングする簡単な方法はありません。 Animate Library形式は、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ファイルにactionscript "タイプごとに" export "export" haxeクラスを生成します。 preloadもオプションですが、使用を簡素化するには推奨されます。
このようなSWFから「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
SWFの開発コピーがインストールされている場所をHaxelibに伝えます。
haxelib dev swf swf
SWFライブラリツールを再構築します。
```bash
openfl rebuild tools
# or
cd swf
haxe rebuild.hxml
```
リリースビルドに戻るには:
haxelib dev swf