मुझे एमएक्सएमएल का उपयोग क्यों करना चाहिए?

यदि MXML में जो कुछ भी पूरा किया जा सकता है, उसे एक्शनस्क्रिप्ट में भी पूरा किया जा सकता है और कई चीजें आसान होती हैं एक्शनस्क्रिप्ट में पूरा करें (लूप, सशर्त, इत्यादि) एमएक्सएमएल सीखने का समय क्यों लें?

इस बिंदु पर मेरे पास सबसे अच्छे कारण यह हैं कि एमएक्सएमएल की संरचना यूआई घटकों के दृश्य पदानुक्रम से मेल खाती है और यूआई को आरंभ करने के लिए कोड की रेखाएं कम हो जाती हैं। दूसरी तरफ वास्तविक दुनिया के यूआई अक्सर गतिशील होते हैं, जो एक साधारण स्थैतिक संरचना के रूप में लागू होते हैं और फिर रनटाइम स्थितियों के आधार पर गतिशील रूप से भरे जाते हैं (जिस स्थिति में यूआई अपडेट एक्शनस्क्रिप्ट में वैसे भी होते हैं)। कुछ सहायक तरीकों के निर्माण के साथ एक्शनस्क्रिप्ट के लिए आवश्यक SLOC को कम करना भी संभव होगा ।

0

4 उत्तर

यदि आप फ्लेक्सबिल्डर का उपयोग करते हैं तो एमएक्सएमएल एक आवेदन देने के लिए उपयोगी है क्योंकि फ्लेक्सबिल्डर डिजाइन दृश्य में एमएक्सएमएल पढ़/लिख सकता है। एमएक्सएमएल के माध्यम से राज्यों को लागू करना भी बहुत आसान है।

यदि आप फ्लेक्सबिल्डर जैसे टूल का उपयोग नहीं करते हैं जिसमें डिज़ाइन व्यू है, तो यह कम उपयोगी हो सकता है। याद रखें कि फ्लेक्स 4 नई थर्मो सामान पेश करने के कारण है, जिसमें एमएक्सएमएल नोटेशन का उपयोग करके वेक्टर ग्राफिक्स बनाने की क्षमता शामिल है, और फ्लेक्स घटकों को त्वचा के लिए एमएक्सएमएल का उपयोग करने की अनुमति देगा। यह संभवतः अपने आप में आ जाएगा। यदि आप पहले ही एमएक्सएमएल के आसपास अपना रास्ता सीखा है तो आपको उस समय एक फायदा होगा।

0
जोड़ा

क्या आप कह रहे हैं कि आप फ्लेक्स ढांचे का उपयोग करने जा रहे हैं, लेकिन यह चुन रहे हैं कि एमएक्सएमएल का उपयोग करना है या एएस में गतिशील रूप से काम करना है या नहीं? यदि ऐसा है, तो एमएक्सएमएल का मुख्य लाभ डिज़ाइन इंटरफ़ेस के साथ एकीकरण है। यदि WYSIWYG इंटरफ़ेस तक पहुंच प्राप्त करना आपके लिए मूल्यवान नहीं है, तो आप पाएंगे कि एमएक्सएमएल और शुद्ध एएस के बीच थोड़ा अंतर है।

यदि आप एफएलए फाइलों का उपयोग कर एमएक्सएमएल बनाम का उपयोग करने के बारे में पूछ रहे हैं, तो यह एक बहुत ही अलग सवाल है - यह "मुझे फ्लेक्स फ्रेमवर्क का उपयोग क्यों करना चाहिए?"

0
जोड़ा

एमएक्सएमएल और विजुअल डिजाइनर के साथ यूआई तत्वों को डिजाइन करना कोड की तुलना में बहुत आसान है, और मेरी राय में कम त्रुटि-प्रवण है।

यहां तक ​​कि यदि यूआई गतिशील रूप से बदलता है, तो इसका मतलब यह है कि प्री-डिफ़ाइंड किए गए UI तत्वों को अंदर और बाहर स्वैप करना है।

0
जोड़ा

यह आपके आवेदन की ज़रूरतों पर निर्भर करता है, लेकिन मैं आमतौर पर दृश्य डिजाइन में अपना डिज़ाइन तोड़ता हूं और एमएक्सएमएल आधारित कस्टम घटकों का उपयोग करके अपने अनुप्रयोग (डेटा पैनल, संवाद बॉक्स, आदि) के मुख्य क्षेत्रों और घटकों को बाहर रखने के लिए कस्टम एमएक्सएमएल घटकों का उपयोग करता हूं। फिर मैं इसे बढ़ाऊंगा कि कस्टम एक्शनस्क्रिप्ट घटकों के साथ जहां मुझे लेआउट घटकों में निर्मित की तुलना में अधिक दृश्य flexibilty की आवश्यकता है। एमएक्सएमएल आसान है क्योंकि यह मंच पर घटकों को प्राप्त करना बेहद आसान बनाता है और अपनी विभिन्न गुणों और शैली सेटिंग्स को सेट करता है।

दो समान लॉगिन पैनलों का यह उदाहरण लें:

एमएक्सएमएल में:


    
    
    
    
    

और क्रियालेख में:

package
{
    import flash.events.MouseEvent;

    import mx.containers.Panel;
    import mx.controls.Button;
    import mx.controls.Label;
    import mx.controls.TextInput;

    public class MyLoginPanel extends Panel
    {

        private var _unLabel:Label;
        private var _passLabel:Label;
        private var _txtUsername:TextInput;
        private var _txtPassword:TextInput;
        private var _btnLogin:Button;

        public function MyLoginPanel()
        {
        }

        override protected function createChildren():void
        {
            super.createChildren();

            this.width = 290;
            this.height = 148;
            this.title = "Login";
            this.layout = "absolute";

            _unLabel = new Label();
            _unLabel.text = "User Name:";
            _unLabel.width = 80;
            _unLabel.setStyle("textAlign", "right");
            _unLabel.move(8, 8);
            this.addChild(_unLabel);

            _passLabel = new Label();
            _passLabel.text = "Password:";
            _passLabel.width = 80;
            _passLabel.setStyle("textAlign", "right");
            _passLabel.move(8, 38);
            this.addChild(_passLabel);

            _txtUsername = new TextInput();
            _txtUsername.move(90, 8);
            this.addChild(_txtUsername);

            _txtPassword = new TextInput();
            _txtPassword.move(90, 38);
            _txtPassword.displayAsPassword = true;
            this.addChild(_txtPassword);

            _btnLogin = new Button();
            _btnLogin.label = "Login";
            _btnLogin.move(185, 68);
            _btnLogin.addEventListener(MouseEvent.CLICK, doLogin);
            this.addChild(_btnLogin);
        }       
    }
}

कोड बनाम 62 की सात पंक्तियां। यह एक बहुत ही सरल उदाहरण है, लेकिन उम्मीद है कि आप देख सकते हैं कि एमएक्सएमएल में अपने आवेदन के कई हिस्सों को बिछाने से आप कैसे लाभ उठा सकते हैं, भले ही आप फ्लेक्स बिल्डर में डिज़ाइन मोड का उपयोग कर रहे हों या नहीं।

एक चीज जो मैं अनुशंसा करता हूं, हालांकि आपकी एमएक्सएमएल फाइलों से जितनी ज्यादा हो सके क्रियालेख को बाहर रखता है। एमएक्सएमएल को अपने विचार के रूप में देखें और किसी भी भारी कार्यक्षमता को अन्य वर्गों में अलग करें। फिर आप उन वर्गों में सार्वजनिक संपत्तियां प्रदान कर सकते हैं जो आपके एमएक्सएमएल घटकों के नियंत्रण से जुड़ सकते हैं। एमएक्सएमएल एक लेआउट भाषा है और मेरे अनुभव में यह इसका उपयोग करने के अंत में भुगतान करता है जहां भारी समझदारी की आवश्यकता होती है, जहां यह समझ में आता है और क्रियालेख में गिरा देता है।

0
जोड़ा
मैं बहुत कुछ कहने जा रहा था, लेकिन तुमने मुझे मार दिया। एमएक्सएमएल के प्रमुख फायदे 1) ब्रेवटी, और 2) मार्कअप और लेआउट के बीच संरचनात्मक समकक्ष हैं।
जोड़ा लेखक benjismith, स्रोत