سؤال

نظرا لأنني أقوم ببناء إطار فليكس لأسماد الألعاب الرياضية، فأخطط لتجميع مجموعة من الأصول الرسومية (رموز Movieclip) في ملف SWF واحد، والتي ستحميلها في تطبيق Flex الخاص بي، قبل استخراج الرموز من ملف SWF للاستخدام في بلدي تطبيق. سؤالي هو: كيف يمكنني القيام بذلك من خلال ActionScript؟

شكرا!

هل كانت مفيدة؟

المحلول

إذا كنت لا ترغب في استخدام التضمين ولا ترغب في تحميل الأصول في وقت التشغيل، أوصي بتصدير SWF كعملية SWC.

بهذه الطريقة، يمكنك تصفح ملفات SWC من ActionScript. يمكنك التحقق من الحدث على تجميع الوقت الذي يوجد فيه movieclip الفرعي داخل movieclip آخر.

إذا كنت تستخدم Flex Compiler ثم تذكر إضافة هذا عند ترجمة:

-library-path C:\path\to\your\file.swc

إذا كنت تستخدم FDT، فلديك خيارا لإضافة SWC كحجج.

هنا عرض تجريبي حول كيفية القيام بذلك مع FDT. غير متأكد من الأداة التي تستخدمها. إذا كانت منشئ المرن التجاري يجب أن تكون العملية متشابهة.

أعتقد أن هذا ما تبحث عنه.

نصائح أخرى

سأحاول إنشاء مكتبة أصول / أيقونة كملف.

شيء على غرار

package 
{

public class IconLibrary
{

    /*
    *  Framework Icons
    */

    [Embed (source="../assets/fof_graphics.swf", symbol="clapperboard_icon")]
    public static const clapperBoardIcon:Class;
    [Embed (source="../assets/fof_graphics.swf", symbol="clapperboard_over_icon")]
    public static const clapperBoardOverIcon:Class;
    [Embed (source="../assets/fof_graphics.swf", symbol="close_button")]
    public static const closeButton:Class;
    [Embed (source="../assets/fof_graphics.swf", symbol="close_over")]
    public static const closeOverButton:Class;

    public function IconLibrary()
    {
    }

  }

}

ثم كل ما عليك القيام به هو

source="{IconLibrary.clapperBoardIcon}"

أو أيا كان اسم الأصل الذي ترغب في إظهاره.

الكثير من الحلول الجيدة هنا، إليك واحدة إذا كنت تقوم بتحميل SWF في وقت التشغيل وتريد استخراج الأصول، يمكنك القيام بما يلي في Loader Full Complete Under Uncoy Mener:

var c:Class = Class(LoaderInfo(e.target).applicationDomain.getDefinition("myClassDefinitionName"));

سيؤدي ذلك إلى تخزين الأصل من SWF ككائن فئة حتى تتمكن من إنشاء مثيلات منه مثل ذلك:

var asset:MovieClip = new c();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top