·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[Flex]flex侦听键盘事件代码示例

时间:2012-11-28 23:02CuPlayer.com
[Flex]flex侦听键盘事件代码示例,在监听键盘事件之前,让舞台获得焦点是必要的,加一个单击事件来变通一下

在监听键盘事件之前,让舞台获得焦点是必要的,加一个单击事件来变通一下

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
  3.       xmlns:s="library://ns.adobe.com/flex/spark" 
  4.       xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" 
    minHeight="600" creationComplete="init()"> 
  5. <s:layout> 
  6.    <s:BasicLayout/> 
  7. </s:layout> 
  8. <fx:Declarations> 
  9.    <!-- 将非可视元素(例如服务、值对象)放在此处 --> 
  10. </fx:Declarations> 
  11. <fx:Script> 
  12.    <![CDATA[ 
  13.     import spark.core.SpriteVisualElement; 
  14.     import mx.controls.Alert; 
  15.     
  16.     private var sprite:SpriteVisualElement; 
  17.     
  18.     internal function init():void{ 
  19.       sprite = new SpriteVisualElement(); 
  20.       sprite.graphics.beginFill(0xFF0000); 
  21.       sprite.graphics.drawCircle(10,10,30); 
  22.       sprite.graphics.endFill(); 
  23.       this.addElement(sprite); 
  24.      // sprite. 
  25.       sprite.addEventListener(MouseEvent.MOUSE_DOWN,startDragHander); 
  26.       sprite.addEventListener(MouseEvent.MOUSE_UP,stopDragHander); 
  27.       this.addEventListener(KeyboardEvent.KEY_UP,keyHander); 
  28.     } 
  29.     
  30.     internal function startDragHander(evt:MouseEvent):void{ 
  31.      sprite.startDrag(); 
  32.     } 
  33.     
  34.     internal function stopDragHander(evt:MouseEvent):void{ 
  35.      sprite.stopDrag(); 
  36.     } 
  37.     
  38.     internal function doFoucs():void{ 
  39.     stage.focus = this; 
  40.     } 
  41.     
  42.     internal function keyHander(evt:KeyboardEvent):void{ 
  43.      //Alert.show(evt.keyCode.toString()); 
  44.       switch(evt.keyCode){ 
  45.          case 37: 
  46.        sprite.x-=10; 
  47.       break; 
  48.       case 38: 
  49.        sprite.y-=10; 
  50.       break; 
  51.       case 39: 
  52.        sprite.x+=10; 
  53.          break; 
  54.       case 40: 
  55.        sprite.y+=10; 
  56.       break; 
  57.       default: 
  58.       break; 
  59.       } 
  60.     } 
  61.    ]]> 
  62. </fx:Script> 
  63. <s:Button x="539" y="369" label="场景获得焦点" click="doFoucs()"/> 
  64. </s:Application> 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器