سؤال

هل من الممكن استخدام Flex Framework والمكونات دون استخدام MXML؟أعرف ActionScript جيدًا، ولا أشعر بالرغبة في العبث ببعض لغات XML الجديدة للحصول على واجهة مستخدم بسيطة هناك.هل يمكن لأي شخص تقديم مثال يتكون من ملف بتنسيق .as يمكن تجميعه (من الأفضل عبر FlashDevelop، على الرغم من أن مجرد إخبار كيفية القيام بذلك باستخدام Flex SDK أمر جيد أيضًا) ويستخدم Flex Framework؟على سبيل المثال، مجرد إظهار الزر المرن الذي يفتح التنبيه سيكون أمرًا مثاليًا.

إذا لم يكن ذلك ممكنًا، فهل يمكن لأي شخص توفير الحد الأدنى من ملف MXML الذي سيقوم بتمهيد فئة AS مخصصة والتي يمكنها بعد ذلك الوصول إلى Flex SDK؟

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

المحلول

لقد قمت بعمل تمهيد بسيط مشابه لـ Borek (انظر أدناه).أرغب في التخلص من ملف mxml، لكن إذا لم يكن لدي، فلن أحصل على أي من السمات القياسية التي تأتي مع Flex (haloclassic.swc، إلخ).هل يعرف أي شخص كيفية القيام بما يقترحه ثيو وما زال يطبق السمات القياسية؟

إليك طريقتي المبسطة في عملية التمهيد:

main.mxml

<?xml version="1.0" encoding="utf-8"?>
<custom:ApplicationClass xmlns:custom="components.*"/>

ApplicationClass.as

package components {
    import mx.core.Application;
    import mx.events.FlexEvent;
    import flash.events.MouseEvent;
    import mx.controls.Alert;
    import mx.controls.Button;

    public class ApplicationClass extends Application {
        public function ApplicationClass () {
            addEventListener (FlexEvent.CREATION_COMPLETE, handleComplete);
        }
        private function handleComplete( event : FlexEvent ) : void {
            var button : Button = new Button();
            button.label = "My favorite button";
            button.styleName="halo"
            button.addEventListener(MouseEvent.CLICK, handleClick);
            addChild( button );
        }
        private function handleClick(e:MouseEvent):void {
            Alert.show("You clicked on the button!", "Clickity");
        }
    }
}

فيما يلي التحديثات اللازمة لاستخدامه مع Flex 4:

main.mxml

<?xml version="1.0" encoding="utf-8"?>
<local:MyApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:local="components.*" />

MyApplication.as

package components {
    import flash.events.MouseEvent;
    import mx.controls.Alert;
    import mx.events.FlexEvent;
    import spark.components.Application;
    import spark.components.Button;

    public class MyApplication extends Application {
        public function MyApplication() {
              addEventListener(FlexEvent.CREATION_COMPLETE, creationHandler);
        }
        private function creationHandler(e:FlexEvent):void {
            var button : Button = new Button();
            button.label = "My favorite button";
            button.styleName="halo"
            button.addEventListener(MouseEvent.CLICK, handleClick);
            addElement( button );
        }
        private function handleClick(e:MouseEvent):void {
            Alert.show("You clicked it!", "Clickity!");
        }
    }
}

نصائح أخرى

هذا تطبيق بسيط جدًا يقوم فقط بالتمهيد الأساسي في MXML.هذا هو MXML:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()">
  <mx:Script source="Script.as" />
</mx:Application>

هذا هو البرنامج النصي.

import mx.controls.Button;
import flash.events.MouseEvent;
import mx.controls.Alert;
import mx.core.Application;

private function onCreationComplete() : void {
  var button : Button = new Button();
  button.label = "Click me";
  button.addEventListener(MouseEvent.CLICK, function(e : MouseEvent) : void {
    Alert.show("Clicked");
  });

  Application.application.addChild(button);
}

ملحوظة:لن تعمل الإجابة أدناه فعليًا إلا إذا قمت بتهيئة مكتبة Flex أولاً.هناك الكثير من التعليمات البرمجية المعنية للقيام بذلك.راجع التعليقات أدناه، أو الإجابات الأخرى لمزيد من التفاصيل.


ليس من الضروري أن تكون الفئة الرئيسية في MXML، فقط قم بإنشاء فئة ترث منها mx.core.Application (وهو ما تمثله فئة MXML ذات الامتداد <mx:Application> يتم تجميع العقدة الجذرية على أي حال):

package {

  import mx.core.Application;


  public class MyFancyApplication extends Application {

    // do whatever you want here

  }

}

وأيضًا، أي تعليمات برمجية لـ ActionScript تم تجميعها باستخدام mxmlc يمكن للمترجم - أو حتى أداة تأليف Flash CS3 - استخدام فئات Flex، فالأمر يتعلق فقط بإتاحتها في مسار الفصل (بالإشارة إلى إطار العمل SWC عند استخدام mxmlc أو الإشارة إلى مجلد يحتوي على المصدر عند استخدام أي منهما).ما لم ترث فئة الوثيقة من mx.core.Application ومع ذلك، قد تواجه بعض المشاكل، نظرًا لأن بعض الأشياء في إطار العمل تفترض أن هذا هو الحال.

نعم، تحتاج فقط إلى تضمين flex swc في مسار الفصل الدراسي الخاص بك.يمكنك العثور على flex.swc في flex sdk فيframeoworks/lib/flex.swc

يحرر:شيء اخر:إذا كنت تستخدم Flex Builder، فيمكنك ببساطة إنشاء مشروع ActionScript جديد، والذي سيقوم بنفس الشيء كما هو مذكور أعلاه.

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