2016-10-13 00:16:48 点击量:14 标签: 收藏本文
在监听键盘事件之前,让舞台获得焦点是必要的,加一个单击事件来变通一下
- <?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" minWidth="955"
minHeight="600" creationComplete="init()">- <s:layout>
- <s:BasicLayout/>
- </s:layout>
- <fx:Declarations>
- <!-- 将非可视元素(例如服务、值对象)放在此处 -->
- </fx:Declarations>
- <fx:Script>
- <![CDATA[
- import spark.core.SpriteVisualElement;
- import mx.controls.Alert;
- private var sprite:SpriteVisualElement;
- internal function init():void{
- sprite = new SpriteVisualElement();
- sprite.graphics.beginFill(0xFF0000);
- sprite.graphics.drawCircle(10,10,30);
- sprite.graphics.endFill();
- this.addElement(sprite);
- // sprite.
- sprite.addEventListener(MouseEvent.MOUSE_DOWN,startDragHander);
- sprite.addEventListener(MouseEvent.MOUSE_UP,stopDragHander);
- this.addEventListener(KeyboardEvent.KEY_UP,keyHander);
- }
- internal function startDragHander(evt:MouseEvent):void{
- sprite.startDrag();
- }
- internal function stopDragHander(evt:MouseEvent):void{
- sprite.stopDrag();
- }
- internal function doFoucs():void{
- stage.focus = this;
- }
- internal function keyHander(evt:KeyboardEvent):void{
- //Alert.show(evt.keyCode.toString());
- switch(evt.keyCode){
- case 37:
- sprite.x-=10;
- break;
- case 38:
- sprite.y-=10;
- break;
- case 39:
- sprite.x+=10;
- break;
- case 40:
- sprite.y+=10;
- break;
- default:
- break;
- }
- }
- ]]>
- </fx:Script>
- <s:Button x="539" y="369" label="场景获得焦点" click="doFoucs()"/>
- </s:Application>
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室