`
lixinye0123
  • 浏览: 323342 次
  • 性别: Icon_minigender_1
  • 来自: 温州
社区版块
存档分类
最新评论

1.6. 响应鼠标和键盘事件

阅读更多
1.6. 响应鼠标和键盘事件
 
问题
我要处理鼠标或键盘事件
解决办法
监听和捕获处理鼠标和键盘事件
讨论
 
处理鼠标和键盘事件很类似于enterFrame 事件,这些在1.5节已经讨论过,只是略有不同。对于鼠标事件,主程序不会直接接收,需要通过一个可视组件监听它(关于可视组件会在第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);
        }

    }

}
  
分享到:
评论

相关推荐

    actionscript cook book 中文版

    1.6. 响应鼠标和键盘事件 10 1.7. 算术运算 12 1.8. 逻辑运算 13 1.9. 执行条件语句 15 1.10. 执行复杂的条件语句 17 1.11. 某段时间重复执行一种操作 19 1.12. 长时间执行一个任务 20 1.13. 创建可重用代码 22 1.14...

    1350多个精品易语言模块

    内 存读写和进程操作.ec 内存读写模块 2.0.ec 内存读写模块 2[1].0.ec 内存读写模块.ec 内存读写模块 1.0.ec 内存读写模块2.0.ec 写屏幕.ec 冰川多媒体播放模块 1.0.ec 凝逸.注册易语言支持库 1.0.ec 凝逸网页取文...

    微机原理及接口技术

    1.6 小结...................................................... 19 1.7 习题...................................................... 19 第 2 章 80X86 微处理器内部结构............ 21 2.1 微处理器的功能结构...

    1345个易语言模块

    内 存读写和进程操作.ec 内存读写模块 2.0.ec 内存读写模块 2[1].0.ec 内存读写模块.ec 内存读写模块 1.0.ec 内存读写模块2.0.ec 写屏幕.ec 冰川多媒体播放模块 1.0.ec 凝逸.注册易语言支持库 1.0.ec 凝逸网页取文...

    易语言模块大全(共775个模块)

    控件和窗口模块(1.6).zip 控制系统音量(1.0).zip 控制面板模块1.0(1.0).zip 控制鼠标活动范围(1.0).zip 酷按钮模块(2.2).zip 六十四卦卦相(1.0).zip 列表框打印预览(1.0).zip 良剑科技-外挂作坊模块(新年礼物)(1.0)....

    易语言700模块打包

    控件和窗口模块(1.6).zip 控制系统音量(1.0).zip 控制面板模块1.0(1.0).zip 控制鼠标活动范围(1.0).zip 酷按钮模块(2.2).zip 六十四卦卦相(1.0).zip 列表框打印预览(1.0).zip 良剑科技-外挂作坊模块(新年礼物...

    易语言模块914个

    创建时钟事件.ec 删除文件模块.ec 删除文本所在行.ec 判断ASCII编码.ec 判断XP外观支持文件是否存在.ec 判断字符模块.ec 判断数据库.ec 判断进程是否存在的模块.ec 到文本.ec 办公组件密码管理模块.ec ...

    flex3的cookbook书籍完整版dpf(包含目录)

    创建Cairngorm视图、事件和模型 21.6节.创建Cairngorm命令和事务代理类 21.7节.创建CairngormFrontController和ServiceLocator 21.8节.使用Cairngorm框架生成器生成应用程序骨架 21.9节.学习常用的提高性能的技巧 ...

    2020易语言模块大全持续更新3.zip

    置鼠标移入移出事件.ec 自创加解密数据.ec 自动升级模块.ec 自动填表.ec 自动更新模块 1.3.ec 自动更新模块.ec 自动编号模块.ec 自定义鼠标.ec 自定延时模块.ec 自用万能模块1.71.ec 自解压制作.ec 色彩转换_模块.ec...

    Java语言的科学与艺术 斯坦福大学经典教材

    9.7 编程练习 第10章 事件驱动程序 10.1 Java事件模型 10.2 简单的事件驱动程序 10.3 响应鼠标事件 10.4 响应键盘事件 10.5 创建简单的GUI 10.6 Swing 交互器层次结构 10.7 管理组件布局 10.8 使用TableLayout类 ...

    Java语言的科学与艺术(国外计算机科学经典教材)

     10.3 响应鼠标事件  10.4 响应键盘事件  10.5 创建简单的GUI  10.6 Swing 交互器层次结构  10.7 管理组件布局  10.8 使用TableLayout类  10.9 小结  10.10 复习题  10.11 编程练习 第11章 数组与ArrayList...

    WPF编程宝典 part1

    2.3 XAML中的属性和事件 24 2.3.1 简单属性与类型转换器 25 2.3.2 复杂属性 26 2.3.3 标记扩展 28 2.3.4 附加属性 29 2.3.5 嵌套元素 30 2.3.6 特殊字符与空白 32 2.3.7 事件 34 2.3.8 完整的Eight Ball Answer示例 ...

    WPF编程宝典 part2

    2.3 XAML中的属性和事件 24 2.3.1 简单属性与类型转换器 25 2.3.2 复杂属性 26 2.3.3 标记扩展 28 2.3.4 附加属性 29 2.3.5 嵌套元素 30 2.3.6 特殊字符与空白 32 2.3.7 事件 34 2.3.8 完整的Eight Ball Answer示例 ...

    Visual C++ 2005入门经典.part08.rar (整理并添加所有书签)

    9.9.6 委托和事件 9.9.7 引用类的析构函数和结束函数 9.9.8 通用类 9.10 小结 9.11 练习 第10章 调试技术 10.1 理解调试 10.1.1 程序故障 10.1.2 常见故障 10.2 基本的调试操作 10.2.1 设置断点 10.2.2 设置跟踪点 ...

    Visual C++ 2005入门经典.part04.rar (整理并添加所有书签)

    9.9.6 委托和事件 9.9.7 引用类的析构函数和结束函数 9.9.8 通用类 9.10 小结 9.11 练习 第10章 调试技术 10.1 理解调试 10.1.1 程序故障 10.1.2 常见故障 10.2 基本的调试操作 10.2.1 设置断点 10.2.2 设置跟踪点 ...

    Visual C++ 2005入门经典.part07.rar (整理并添加所有书签)

    9.9.6 委托和事件 9.9.7 引用类的析构函数和结束函数 9.9.8 通用类 9.10 小结 9.11 练习 第10章 调试技术 10.1 理解调试 10.1.1 程序故障 10.1.2 常见故障 10.2 基本的调试操作 10.2.1 设置断点 10.2.2 设置跟踪点 ...

Global site tag (gtag.js) - Google Analytics