Flex的事件监听机制很完善,下面主要简单的讲一下flex键盘事件的监听。
首先,要理解一个概念,键盘事件发生的对象,通过实践,我知道,其实是容器,菜谱上分为stage和HBox等普通容器;
其次,要明白键盘事件也是事件,事件的监听无非是用事件处理器监听(常用的如click),这里用的是keyDown;或者用addEventLisner的方式;
在下面的例子里,我两种都用了,application用的是addEventLisner,自定义控件com里用的是keydown;在事件触发的时候,前种方式会在后者之前执行。
code view:
ComA代码:
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:HBox xmlns:mx=”http://www.adobe.com/2006/mxml“ keyDown=”keyHalder(event)” width=”400″ height=”300″>
<mx:Script>
<![CDATA[
public function keyHalder(event:KeyboardEvent):void
{
switch(event.keyCode)
{
case 13:
trace("按的是回车!");
break;
case 32:
trace("按的是空格!");
break;
default:
trace("不是空格也不是回车!");
break;
}
}
]]>
</mx:Script>
<mx:Button label=”Button”/>
</mx:HBox>
Application代码:
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml“ creationComplete=”init()” layout=”absolute” xmlns:ns1=”*”>
<mx:Script>
<![CDATA[
public function init():void
{
this.addEventListener(KeyboardEvent.KEY_UP,keyHalder1);
}
public function keyHalder1(evt:KeyboardEvent):void
{
trace(evt.keyCode.toString());
}
]]>
</mx:Script>
<mx:TextInput x=”10″ y=”171″ id=”tp1″/>
<ns1:ComA x=”243″ y=”19″>
</ns1:ComA>
</mx:Application>
【非商业性转载,请全文转载并署作者名:王海军。商业性使用,请联系作者。欢迎访问我的独立博客http://www.seu528.com】