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