加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

FLEX actionscript响应鼠标和键盘事件

发布时间:2020-12-15 01:40:12 所属栏目:百科 来源:网络整理
导读:我们要利用as语言处理鼠标或键盘事件 那么就要监听和捕获处理鼠标和键盘事件 处理鼠标和键盘事件很类似于enterFrame 事件,这些在1.5节已经讨论过,只是略有不同。对于 鼠标事件,主程序不会直接接收,需要通过一个可视组件监听它(关于可视组件的讨论以后讲

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读