采用MXML Component来定制自己的组件,实现程序中的复用部分。
大多数的自定义组件都是基于现有的组件进行开发的,因此在新建MXML Component时应先选择基本组件。
组件设计也包括界面设计和事件处理两部分。
当定制好一个新的组件后,它会自动出现在Design模式下的组件列表的Custom项下。
Demo:定制一个简单的登陆组件
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="275" height="150" title="Member Login">
<mx:Script>
<![CDATA[
private function handleLoginEvent():void
{
lblTest.text="Login...";
//Login logic
if(txtUID.text=="")
lblTest.text="User name can not be empty!";
else if(txtPwd.text=="")
lblTest.text="Password can not be empty!";
}
]]>
</mx:Script>
<mx:Label x="10" y="10" text="User Name"/>
<mx:Label x="10" y="40" text="Password"/>
<mx:TextInput x="84" y="8" id="txtUID"/>
<mx:TextInput x="84" y="38" id="txtPwd"/>
<mx:Button x="180" y="78" label="Login" click="handleLoginEvent()"/>
<mx:Label x="10" y="82" id="lblTest"/>
</mx:Panel>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="275" height="150" title="Member Login">
<mx:Script>
<![CDATA[
private function handleLoginEvent():void
{
lblTest.text="Login...";
//Login logic
if(txtUID.text=="")
lblTest.text="User name can not be empty!";
else if(txtPwd.text=="")
lblTest.text="Password can not be empty!";
}
]]>
</mx:Script>
<mx:Label x="10" y="10" text="User Name"/>
<mx:Label x="10" y="40" text="Password"/>
<mx:TextInput x="84" y="8" id="txtUID"/>
<mx:TextInput x="84" y="38" id="txtPwd"/>
<mx:Button x="180" y="78" label="Login" click="handleLoginEvent()"/>
<mx:Label x="10" y="82" id="lblTest"/>
</mx:Panel>
Result: