Menyediakan penguraian runtime atau kompilasi waktu dan pemrosesan aset SWF/SWC untuk digunakan dengan OpenFL. Konten SWF kemudian dapat digunakan untuk animasi desain atau (beta) dalam proyek yang digunakan untuk target desktop, web, seluler dan konsol di kedua teknologi web dan asli.
Penggunaan perpustakaan ini untuk konten desain statis memiliki rekam jejak dalam produksi. Penggunaan perpustakaan ini untuk animasi harus dianggap beta dan mungkin tidak dioptimalkan untuk kinerja. Kontribusi untuk meningkatkan kinerja dipersilakan!
Ada tiga jalur kode utama di dalam perpustakaan:
Ketik "SWF" memberikan penguraian penuh dari format SWF/SWC (berdasarkan perpustakaan AS3SWF asli oleh Claus Wahlers). Kode ini dioptimalkan terutama untuk kelengkapan dan akurasi daripada kinerja. Setelah SWF sepenuhnya diuraikan, itu dapat diekspor ke format yang dioptimalkan runtime baru (SWFLITE, Animate) atau ada implementasi dasar yang tersedia untuk menggunakan konten SWF yang diuraikan langsung saat runtime. Mereka yang tertarik untuk meningkatkan jalur kode ini mungkin tertarik untuk melihat https://github.com/openfl/openfl-layer sebagai awal untuk menguji dan meningkatkan pemuatan runtime SWF dan pemutaran.
Ketik "SWFLITE" adalah format eksportir yang lebih tua, yang sebelumnya terintegrasi dalam OpenFL. Kode ini ada di perpustakaan ini terutama karena alasan historis. Setelah mem -parsing konten SWF menggunakan jalur kode "SWF", format baru dihasilkan dengan bantuan serializer haxe. Meskipun ukuran file runtime dan peningkatan kinerja berdasarkan format, ketergantungan pada serialisasi Haxe memiliki kerugian pada kompatibilitas mundur.
Ketik "Animate" adalah format eksportir terbaru, dan default untuk semua target. Ini menggabungkan manfaat dari format "swflite" saat menulis ke JSON dan mengompresi semua aset menjadi satu file zip. Ini dapat ditingkatkan secara iteratif sambil mempertahankan kompatibilitas ke belakang. Format SWF Macromedia juga memiliki manfaat ini, namun dioptimalkan untuk runtime yang berbeda dari browser web modern. Misalnya, gambar dalam file SWF Macromedia mungkin memiliki alpha premultiplied yang sudah diterapkan pada bitmaps. Tidak ada cara cepat untuk membuat ini dengan benar menggunakan kanvas HTML5. Format Perpustakaan Animasi menawarkan peluang untuk pra-proses konten SWF ke dalam format fleksibel yang dioptimalkan untuk penggunaan produksi modern.
Perpustakaan ini dapat dipanggil secara otomatis oleh alat baris perintah OpenFL /LIME untuk memproses <library /> tag, atau dapat digunakan pada baris perintah untuk memproses file SWF ke dalam file zip.
Pertama, pastikan bahwa <haxelib name="swf" /> telah ditambahkan ke proyek Anda.
Kemudian, Anda dapat menambahkan <library path="to/your.swf" preload="true" /> untuk memasukkan perpustakaan SWF. Ini akan tersedia saat runtime menggunakan nama file SWF (minus ".swf") atau Anda dapat menambahkan id="my-unique-id" untuk menentukan nama khusus.
Ada opsi (beta) untuk generate="true" untuk menghasilkan kelas haxe untuk setiap jenis "ekspor untuk actioncript" dalam file swf. preload juga opsional, tetapi disarankan untuk menyederhanakan penggunaan.
Anda dapat membuat klip "Ekspor untuk ActionScript" dari SWF seperti ini:
var clip = Assets . getMovieClip ( " my-swf:MyMovieClipName " );Jika Anda lebih suka membuat seluruh timeline, gunakan nama klip kosong:
var timeline = Assets . getMovieClip ( " my-swf: " );Jika Anda menggunakan opsi 'menghasilkan', Anda sebaliknya akan membuat instance baru seperti ini:
var clip = new MyMovieClipName ();Anda juga dapat memproses file dari baris perintah, dan memuatnya nanti:
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/pathMisalnya:
haxelib run swf process test.swfIni akan menghasilkan file "test.zip" yang dapat dimuat saat runtime nanti:
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 " );
});Anda dapat dengan mudah menginstal SWF menggunakan haxelib:
haxelib install swf
Untuk menambahkannya ke proyek Lime atau OpenFL, tambahkan ini ke file proyek Anda:
<haxelib name="swf" />
Klon Repositori SWF:
git clone https://github.com/openfl/swf
Tell Haxelib di mana salinan pengembangan SWF Anda diinstal:
haxelib dev swf swf
Membangun kembali alat perpustakaan SWF:
```bash
openfl rebuild tools
# or
cd swf
haxe rebuild.hxml
```
Untuk kembali ke Build Rilis:
haxelib dev swf