FLEX actionscript响应鼠标和键盘事件

我们要利用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

你可能感兴趣的:(FLEX actionscript响应鼠标和键盘事件)