在AS中创建简单可视组件
一、关于AS组件
1. 所有的FLEX可视组件源自UIComponnet类。
2. 创建一个简单组件
例:扩展一个TextArea组件,添加一个事件keyDown监听器,当按下Ctrl+z时,清空文本。
package myComponents
{
// as/myComponents/DeleteTextArea.as
import mx.controls.TextArea;
import flash.events.KeyboardEvent;
public class DeleteTextArea extends TextArea {
// Constructor
public function DeleteTextArea() {
// Call super().
super();
// Add event listener for keyDown event.
addEventListener("keyDown", myKeyDown);
}
// Define private keyDown event handler.
private function myKeyDown(eventObj:KeyboardEvent):void {
// Check to see if Ctrl-Z pressed. Keycode for Z is 90.
if (eventObj.ctrlKey && eventObj.keyCode == 90)
text = "";
}
}
}
在MXML里使用这个组件:
<?xml version="1.0"?>
<!-- as/MainDeleteTextArea.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:MyComp="myComponents.*">
<MyComp:DeleteTextArea wordWrap="true" text="My Message"/>
//当然,你还可以使用原来TextArea组件的属性。
</mx:Application>
因为你使用了新的命名空间,你也可使用与继承的组件一样的名称:
package myComponents
{
import mx.controls.TextArea;
import flash.events.KeyboardEvent;
public class TextArea extends mx.controls.TextArea {
...
}
}
在MXML里:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:MyComp="myComponents.*" >
<MyComp:TextArea/>
<mx:TextArea/>
</mx:Application>