Flex timer使用 keydown事件注册到stage

Flex timer使用 keydown事件注册到stage:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
applicationComplete="onApplicationComplete(event)">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
private var timer:Timer = new Timer(10,0);
protected function onApplicationComplete(event:FlexEvent):void{
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown1);
timer.addEventListener(TimerEvent.TIMER,ballMover);
}
protected function ballMover(event:TimerEvent):void{
circle.x += 5;
if(circle.x+100 >=stage.stageWidth){
trace('finished');
timer.stop();
Alert.show('Finished','PoweredCircle');
}
}
protected function keyDown1(event:KeyboardEvent):void{
// 必须点击主页面,获取焦点之后,才能捕获键盘事件;
trace(event.toString());
if(event.keyCode == 13){
timer.start();
}
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<s:Group id="circle">
<s:Ellipse width="100" height="100">
<s:fill>
<s:SolidColor color="#009900">
</s:SolidColor>
</s:fill>
<s:stroke>
<s:SolidColorStroke color="#000000" weight="2">
</s:SolidColorStroke>
</s:stroke>
</s:Ellipse>
</s:Group>
</s:Application>
上一篇:Flex 关于 keyDown事件的添加和移除(另附添加事件的执行带参数的函数)


下一篇:ASP.NET ZERO 学习 JTable的使用子表闭合功能