จัดเตรียมการแยกรันไทม์หรือการวิเคราะห์เวลาและการประมวลผลของสินทรัพย์ SWF/SWC สำหรับใช้กับ OpenFL เนื้อหา SWF สามารถใช้สำหรับการออกแบบหรือ (เบต้า) ภาพเคลื่อนไหวในโครงการที่ปรับใช้กับเดสก์ท็อปเว็บเป้าหมายมือถือและคอนโซลทั้งในเว็บและเทคโนโลยีดั้งเดิม
การใช้ไลบรารีนี้สำหรับเนื้อหาการออกแบบแบบคงที่มีประวัติในการผลิต การใช้ไลบรารีนี้สำหรับแอนิเมชั่นควรได้รับการพิจารณาเบต้าและอาจไม่ได้รับการปรับให้เหมาะสมสำหรับประสิทธิภาพ ยินดีต้อนรับการมีส่วนร่วมในการปรับปรุงประสิทธิภาพ!
มีสามเส้นทางรหัสหลักภายในไลบรารี:
พิมพ์ "SWF" ให้การแยกวิเคราะห์รูปแบบ SWF/SWC เต็มรูปแบบ (ขึ้นอยู่กับไลบรารี AS3SWF ดั้งเดิมโดย Claus Wahlers) รหัสนี้ได้รับการปรับให้เหมาะสมเป็นหลักเพื่อความสมบูรณ์และความแม่นยำมากกว่าประสิทธิภาพ เมื่อ SWF ได้รับการแยกวิเคราะห์อย่างเต็มที่แล้วจะสามารถส่งออกไปยังรูปแบบที่ปรับให้เหมาะกับรันไทม์ใหม่ (SWFLITE, antiMiON) หรือมีการใช้งานพื้นฐานสำหรับการใช้เนื้อหา SWF ที่แยกวิเคราะห์โดยตรงเมื่อรันไทม์ ผู้ที่สนใจในการปรับปรุงเส้นทางรหัสนี้อาจสนใจที่จะดู https://github.com/openfl/openfl-player เป็นการเริ่มต้นการทดสอบและปรับปรุงการโหลด SWF และการเล่น
พิมพ์ "swflite" เป็นรูปแบบผู้ส่งออกเก่าซึ่งรวมอยู่ใน OpenFL ก่อนหน้านี้ รหัสมีอยู่ในห้องสมุดนี้เป็นหลักด้วยเหตุผลทางประวัติศาสตร์ หลังจากแยกวิเคราะห์เนื้อหา SWF โดยใช้เส้นทางรหัส "SWF" รูปแบบใหม่จะถูกสร้างขึ้นด้วยความช่วยเหลือของ HAXE serializer แม้จะมีการปรับปรุงขนาดไฟล์รันไทม์และการปรับปรุงประสิทธิภาพตามรูปแบบการพึ่งพา Haxe serialization มีข้อเสียต่อความเข้ากันได้ย้อนหลัง
พิมพ์ "animate" เป็นรูปแบบผู้ส่งออกล่าสุดและค่าเริ่มต้นสำหรับเป้าหมายทั้งหมด มันรวมประโยชน์ของรูปแบบ "swflite" ในขณะที่เขียนไปยัง JSON และบีบอัดสินทรัพย์ทั้งหมดลงในไฟล์ซิปเดียว มันสามารถปรับปรุงซ้ำ ๆ ในขณะที่รักษาความเข้ากันได้ย้อนหลัง รูปแบบ Macromedia SWF ยังมีประโยชน์เหล่านี้อย่างไรก็ตามมันได้รับการปรับให้เหมาะสมสำหรับรันไทม์ที่แตกต่างจากเว็บเบราว์เซอร์ที่ทันสมัย ตัวอย่างเช่นรูปภาพในไฟล์ SWF Macromedia อาจมีอัลฟ่า premultiplied นำไปใช้กับบิตแมปแล้ว ไม่มีวิธีที่รวดเร็วในการแสดงผลอย่างถูกต้องโดยใช้ผืนผ้าใบ HTML5 รูปแบบไลบรารี animate นำเสนอโอกาสในการประมวลผลเนื้อหา 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" เพื่อสร้างคลาส haxe สำหรับแต่ละประเภท "ส่งออกสำหรับ actionscript" ในไฟล์ SWF การ preload ยังเป็นทางเลือก แต่แนะนำให้ใช้งานง่ายขึ้น
คุณสามารถสร้างคลิป "Export For ActionScript" จาก SWF เช่นนี้:
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 " );
});คุณสามารถติดตั้ง SWF ได้อย่างง่ายดายโดยใช้ haxelib:
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