يوفر وقت التشغيل أو التحليل وقت التجميع ومعالجة أصول SWF/SWC للاستخدام مع OpenFL. يمكن بعد ذلك استخدام محتوى SWF للتصميم أو الرسوم المتحركة (BETA) في المشاريع التي تم نشرها على سطح المكتب والويب والهواتف المحمولة ووحدة التحكم في كل من التقنيات على شبكة الإنترنت والمواصفات.
استخدام هذه المكتبة لمحتوى التصميم الثابت له سجل حافل في الإنتاج. يجب اعتبار استخدام هذه المكتبة للرسوم المتحركة التجريبية وقد لا يتم تحسينها للأداء. المساهمات لتحسين الأداء موضع ترحيب!
هناك ثلاثة مسارات رمز أساسية داخل المكتبة:
يوفر النوع "SWF" تحليلًا كاملاً لتنسيق SWF/SWC (استنادًا إلى مكتبة AS3SWF الأصلية من قبل Claus Wahlers). تم تحسين هذا الرمز بشكل أساسي من أجل الاكتمال والدقة بدلاً من الأداء. بمجرد أن يتم تحليل SWF بالكامل ، يمكن تصديره إلى تنسيق جديد محسّن للوقت (SWFLITE ، تحريك) أو هناك تطبيق بدائي متاح لاستخدام محتوى SWF المحسوب مباشرة في وقت التشغيل. قد يكون المهتمين بتحسين مسار الرمز هذا مهتمًا بالنظر إلى https://github.com/openfl/openfl-player كبداية لاختبار وتحسين تحميل SWF وقت التشغيل.
اكتب "Swflite" هو تنسيق للمصدر الأقدم ، تم دمجه مسبقًا داخل OpenFL. الكود موجود في هذه المكتبة بشكل أساسي لأسباب تاريخية. بعد تحليل محتوى SWF باستخدام مسار رمز "SWF" ، تم إنشاء تنسيق جديد بمساعدة Haxe Serializer. على الرغم من حجم ملفات وقت التشغيل وتحسينات الأداء بناءً على التنسيق ، فإن الاعتماد على تسلسل Haxe كان له الجوانب السلبية إلى التوافق المتخلف.
اكتب "تحريك" هو أحدث تنسيق للمصدر ، والافتراضي لجميع الأهداف. فهو يجمع بين فوائد تنسيق "swflite" أثناء الكتابة إلى JSON وضغط جميع الأصول في ملف ZIP واحد. يمكن تحسينه بشكل تكراري مع الحفاظ على التوافق المتخلف. يحتوي تنسيق Macromedia SWF أيضًا على هذه الفوائد ، ومع ذلك يتم تحسينه لوقت التشغيل مختلف عن متصفحات الويب الحديثة. على سبيل المثال ، قد يكون للصور الموجودة في ملف Macromedia SWF Alpha premultiplied على نقار النقط. لا توجد طريقة سريعة لتقديم هذا بشكل صحيح باستخدام قماش HTML5. يوفر تنسيق المكتبة المتحركة فرصة لمحتوى 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