سؤال

مكدس التطوير الحالي الخاص بي هو MySQL + Ibatis + Spring + Spring Bazeds Integration 1.01 + Blazeds 3.2 و Flex 3 مع إطار Mate 0.8.9. الآن فلاش باني 4 بيتا 2 خارج. هناك ميزات رائعة مثل تطوير البيانات (DCD) ، وتوليد النماذج وما إلى ذلك ... هل تعرف كيف يعمل تكامل النيران في Blazeds مع Blazeds 4؟ ماذا عن رفيقة؟ هل هناك أي مشاكل مع Flex 4؟ كيف يناسب DCD مع Mate EventMaps. أعلم أنه من الأفضل أن أجربها بنفسي ولكني أريد فقط التحقق مما إذا كان شخص ما قد حاول ترحيل Flex 4. إذا كان الأمر كذلك ، فما هي المشكلات؟ هل لاحظت أي إنتاجية سريعة؟ شكرًا.

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

المحلول

لا أستطيع أن أخبركم بأي شيء عن ترحيل مكوناتك الثالثة. لا أستخدم تلك التي ذكرتها.

ومع ذلك ، يمكنني أن أخبرك أنك لن تتمكن ببساطة من تحميل مشروعك الحالي في فلاش باني 4 ، وتغيير SDK إلى 4.0 ، وتتوقع إعادة ترجمة. لقد تغير عدد كبير من الأشياء في Flex 4 ، وغالبًا ما يكون غير متوافق.

إليكم تلك التي واجهتها حتى الآن:

  • لديك الآن مكتبتان مكونان متوازيان ، Spark و MX. MX هي مكتبة مكونات Flex 3 القديمة ، والتي تسمى أحيانًا Halo ، على الرغم من أن هذا مجرد اسم للجلد الافتراضي. Spark هي مكتبة مكون Flex 4 الجديدة ، والتي تحل محل MX جزئيًا فقط.

    إنهم يتفاعلون. يُسمح لك باستخدام كلاهما في تطبيق واحد ، ويمكنك القيام بأشياء مثل وضع مكونات الشرارة في حاويات تخطيط MX مثل ViewStack. هناك أيضًا أقسام طبيعية في التطبيق حيث يمكن أن يكون هناك جانب واحد باستخدام Spark ، والآخر MX ، دون قلق بشأن المتاعب لأنهم لا يتداخلون على مستوى واجهة المستخدم الرسومية. مربعات الحوار مثل ذلك ، على سبيل المثال.

    السبب في أنهم فعلوا كل هذا هو دعم هذه الأشياء الجديدة التي تسمع عنها: محفز فلاش, FXG, ، وكل ذلك. إذا كنت تستخدم جلد Halo Stock ، فأنا لا أرى أن الشرارة تهم لك ، بخلاف حقيقة أنه المستقبل.

    )

    لدى Joan Lafferty (Flex SDK Quality) مقالة قيمة ، الاختلافات بين Flex 3 و Flex 4. تشغيل صفحة 4, ، لديها جدول يسرد مكونات Flex 3 MX التي لم يتم استبدالها بمكونات الشرارة في Flex 4. معظمها ليس لها مظهر خاص بها ، مثل Accordion, ، لذلك لا تحتاج إلى جلدهم ، أو أشياء مثل مربعات الحوار ، مثل Alert. (يجب أن تقرأ من خلال بقية هذه المقالة. إنه يغطي الأشياء التي لا أفعلها ، لأنني لم أواجه كل الاختلافات بعد.)

  • عند الحديث عن الجلود ، لا تزال اثنان فقط من جلود MX من Flex 3 مدعومة في Flex 4. لقد اختفت جلود MX الأكثر ملونة ، على الرغم من أن هناك مجموعة جديدة من الجلود الملونة التي تعتمد على بعض الأشياء التي يمكنك القيام بها مع FXG ومثل هذا. إذا كنت تحب حقًا أحد الأشخاص الذين قاموا بإزالتها ، فيمكنك إعادة إنشاءهم على قمة Spark ، لكنها غير متوفرة خارج الصندوق.

  • كانت أشياء كثيرة أعيدت تسميتها, ، وبعض بدائل الشرارة لمكونات MX لها واجهات مختلفة وكذلك لديك أسماء مختلفة. على سبيل المثال ، للانتقال بالكامل إلى Spark ، سيتعين عليك تغييرك VBoxes ل VGroupس. هناك الكثير من الاختلافات الصغيرة المزعجة من هذا القبيل.

  • بسبب كل شيء مكتبة واجهة المستخدم الرسومية المزدوجة ، وجد Adobe أنفسهم مع مجموعة من علامات MXML مثل <Script> و <Style> هذا ليس جزءًا من MX ، والذي يعمل أيضًا مع Spark. بدلاً من الحصول على مجموعة مكررة من العلامات ، نقلوا هذه إلى مساحة اسم XML جديدة. هذه مشكلة بالنسبة لأولئك الذين يقومون بالترحيل الجزئي للتطبيقات المستندة إلى MX ، لأنه يعني أنك لا تزال تستخدم mx الاسم المستعار لمكتبة مكون MX ، لذلك يجب إعادة تسمية هذه العلامات الشائعة في كلتا المكتبات. مساحة اسم اسم XML الجديدة لهذه العلامات fx, ، لذلك كل <mx:Script> يجب إعادة تسمية <fx:Script>, ، وهلم جرا. IDE لا تفعل هذا من أجلك على استيراد المشروع. يمكنك فقط العثور عليها واحدة تلو الأخرى وأنت تحاول الحصول على مشروعك المستورد.

    إذا كنت تخطط للانتقال تمامًا إلى Spark ، فيمكنك تجنب بعض الألم هنا. بدلا من قبول fx الاسم المستعار لمساحة الاسم الافتراضية على العلامات غير MX ، يمكنك السماح لها بالاستمرار في الاستخدام mx, ، نظرًا لأنك لن تحتاج إلى ذلك من أجل MX ، وتستخدم Spark s كما الافتراضي.

    يجب أن تكون مهمتك الأولى بعد تثبيت Flash Builder 4 هي إنشاء مشروع جديد جديد حتى تتمكن من دراسته ونسخ أشياء مثل إعلانات مساحة الاسم هذه.

  • تداعيات أخرى من MX مقابل Spark و MASTPACE هي أن CSS قد تحتاج إلى التغيير والتبديل. يحتوي Flex على امتداد غير قياسي لـ CSS لهذا الغرض ، والذي يبدو هكذا:

    @namespace mx "library://ns.adobe.com/flex/mx";
    mx|Application {
        ....
    
  • لقد تغيرت جميع عناوين URL لمادة المساحة بين Flex 3 و Flex 4 ، وفي حالة واحدة على الأقل تغيرت مرة أخرى أثناء عملية الإصابة بالنسخة التجريبية Flex 4.

    http://www.adobe.com/2006/mxml هو الآن http://ns.adobe.com/mxml/2009 library://ns.adobe.com/flex/halo هو الآن library://ns.adobe.com/flex/mx

  • ال local() نموذج لتحديد أسماء الخطوط المدمجة باسمها المشترك في CSS لم يعد يعمل. عليك أن تستخدم url() شكل وإعطاء المسار إلى ملف الخط.

    يتم إحالة الكود السابق الخاص بك إلى أن هذا يعني أن هذا يعني أن هذا يعني أنه إذا كنت تقوم بتضمين متغيرات متعددة لخط واحد (مثل الأوزان العادية والجريئة). اثنين من الأوزان ليست في نفس ملف .ttf أو .otf. على سبيل المثال ، هذا:

    @font-face {
        src: local("Verdana");
        fontFamily: VerdanaEmbedded;
        fontWeight: normal;
    }
    @font-face {
        src: local("Verdana");
        fontFamily: VerdanaEmbedded;
        fontWeight: bold;
    }
    

    يجب تغيير هذا:

    @font-face {
        src: url("/Library/Fonts/Verdana.ttf");
        fontFamily: VerdanaEmbedded;
        fontWeight: normal;
    }
    @font-face {
        src: url("/Library/Fonts/Verdana Bold.ttf");
        fontFamily: VerdanaEmbedded;
        fontWeight: bold;
    }
    

    في Flex 3 ، خمن التحويل البرمجي الذي يرفق خط. TTF الرمز أعلاه بناءً على fontWeight ينسب. في Flex 4 ، يجعلك المترجم يخبره بشكل صريح.

  • إذا قمت بتضمين الخطوط في التطبيق الخاص بك واستمرت في استخدام عناصر تحكم MX ، فمن المحتمل أن يختفي النص أو يعود إلى الخط الافتراضي. هذا لأنه ، بشكل افتراضي ، يستخدم Flex 4 آلية تضمين خطوط مختلفة تحت الغطاء لدعم محرك تقديم الخطوط المحسّن في Flash Player 10. لتضمين خط في الطريق الأقدم بحيث لا يزال بإمكان عناصر التحكم في MX القديمة استخدامه ، فأنت لا تزال تستخدمه ، يجب أن تضع embedAsCFF سمة CSS إلى false.

  • آلية الدول مختلفة تماما. هذا الرمز المرن 3:

    <mx:State name="alternate">
        <mx:SetProperty target="{myField}" name="editable" value="false"/>
    </mx:State>
    ....
    <mx:Form ...>
        <mx:TextInput id="myField"/>
        ....
    </mx:Form>
    

    يصبح هذا في Flex 4:

    <mx:State name="alternate"/>
    ....
    <mx:Form ...>
        <mx:TextInput id="myField" editable.alternate="false"/>
        ....
    </mx:Form>
    

    الطريقة الجديدة تجعلني أكثر منطقية بالنسبة لي ، لأنه يضع جميع حالات المكونات الفردية في علامة المكون نفسها ، بدلاً من الطريق في أعلى ملف MXML في مطول <mx:State> كتلة ، ولكن النقل إلى الآلية الجديدة هو قليلا من الطحن. التحويل غير مؤتمت من قبل IDE ، على الرغم من أنه يمكن أن يكون حقا.

  • هناك بعض العلامات التي لم تعد مسموحًا بها كأطفال مباشرين من <Application> بطاقة شعار. تنقسم هذه إلى عدة فئات: المدققون ، التأثيرات ، إلخ. عليك الآن أن تحزمها في جديدة <fx:Declarations> علامة ، مثل ذلك:

    <fx:Declarations>
        <mx:Dissolve id="myTransition" duration="100" target="{this}"/>
    </fx:Declarations>
    
  • يوجد خيار مشروع جديد في فلاش باني يتيح لك متابعة استخدام Flex 3.5 SDK وحده ، دون أي شرارة على الإطلاق ، للحصول على ترحيل أسهل. هذا جيد للاختبارات الأولية ، ولكن في مرحلة ما تريد المضي قدمًا ، وعندها يتعين عليك مواجهة كل ما سبق.

المترجم الجديد لا يبدو أسرع بكثير بالنسبة لي. لم أقم بتقييمها ، فقط أشعر ، وهذا ما يهمني حقًا ، لأنه لا يزال يجعلني أشعر برأي رأسي على مكتبي. :) بالتأكيد لا تستخدم النوى السبعة الأخرى في صندوق التطوير الخاص بي. غرر.

نصائح أخرى

إليك بعض الأشياء التي قد تساعد:

  1. أحدث إصدار من Blazeds هو 3.2.0.3978. لم أسمع إعلانات عن إصدار جديد.
  2. نظرًا لأنك ستحتفظ بنفس الإصدار من Blazeds ، فإن نقل الكود الحالي إلى Flex 4 يجب ألا يكون له أي تأثير على نهايتك الخلفية (دمج النابض الربيعي ، ibatis ، mysql ، إلخ).
  3. Mate لا يدعم رسميًا فليكس 4. كان لدي أخطاء تجميع عندما حاولت التبديل. إليك رابط لمناقشة الحلول, ورابط إلى أ منفذ Flex 4.

حظا طيبا وفقك الله!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top