FLEX actionscript响应鼠标和键盘事件

    技术2026-08-03  4

    我们要利用as语言处理鼠标或键盘事件那么就要监听和捕获处理鼠标和键盘事件处理鼠标和键盘事件很类似于enterFrame 事件,这些在1.5节已经讨论过,只是略有不同。对于鼠标事件,主程序不会直接接收,需要通过一个可视组件监听它(关于可视组件的讨论以后讲)。下面的例子创建一个sprite,添加到可视组件列,然后在它上面画了个矩形:package {import flash.display.Sprite;import flash.events.MouseEvent;public class ExampleApplication extends Sprite {private var _sprite:Sprite;public function ExampleApplication( ) {_sprite = new Sprite( );addChild(_sprite);_sprite.graphics.beginFill(0xffffff);_sprite.graphics.drawRect(0, 0, 400, 400);_sprite.graphics.endFill( );注意:鼠标事件名称被定义在MouseEvent 类中,事件处理函数需要传递进一个MouseEvent 类实例,现在为sprite加入鼠标监听器:_sprite.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);_sprite.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);}接着,定义两个处理函数onMouseDown 和onMouseUp:private function onMouseDown(event:MouseEvent):void {_sprite.graphics.lineStyle(1, 0, 1);_sprite.graphics.moveTo(mouseX, mouseY);_sprite.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);}private function onMouseUp(event:MouseEvent):void {_sprite.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);}onMouseDown 方法设置画线的类型,移动画刷到鼠标点击位置,然后添加了第三个鼠标监听器监听MouseMove 事件onMouseUp 方法用removeEventListener 方法移除监听器,它和addEventListener 方法具有相同语法结构,只是作用相反罢了最后,定义onMouseMove 函数private function onMouseMove(event:MouseEvent):void {_sprite.graphics.lineTo(mouseX, mouseY);}}}这样就建立了一个事件驱动的绘画程序。键盘事件的处理简单一些,只需要监听和响应键盘事件,接受这些事件的对象必须出于激活状态。我们需要在主程序中加入这一行:stage.focus = this;下面的例子展示一个简单的类,它监听键盘的keyDown 事件,输出按键的字符码,package {import flash.display.Sprite;import flash.events.KeyboardEvent;public class ExampleApplication extends Sprite {public function ExampleApplication( ) {stage.focus = this;addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);}private function onKeyDown(event:KeyboardEvent):void {trace("key down: " + event.charCode);}}}

     

    来源:http://flexjs.cn/post/69.html

    最新回复(0)