采用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: