`
lixinye0123
  • 浏览: 333291 次
  • 性别: 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);
        }

    }

}
  
分享到:
评论

相关推荐

    驱动程序-其它驱动-雷柏8130无线键鼠套装驱动 v1.6.zip

    雷柏(RAPOO)是一家知名的电脑外设制造商,其产品包括键盘、鼠标、耳机等。8130无线键鼠套装是他们推出的一款产品,旨在为用户提供高效、舒适的无线输入体验。 驱动程序的版本号"v1.6"表明这是该驱动的第1.6次更新...

    MINIGUI-API-REF-MANUAL-V1.6-E.pdf.rar_linux manual_minigui api

    MINIGUI通过事件驱动模型来处理用户交互,如键盘输入、鼠标点击等。开发者需要注册事件处理函数,如`RegisterWindowMessageProc()`,以响应特定的窗口消息。同时,MINIGUI还支持自定义消息和事件,增强了应用程序的...

    MINIGUI-API-REF-MANUAL-V1.6-E.zip_API_minigui_representzog

    2. 事件处理:通过事件队列,MiniGUI可以处理鼠标、键盘以及其他输入设备的事件,实现用户交互。 3. 图形绘制:包括点、线、矩形、椭圆等基本图形的绘制,以及颜色管理和位图操作。 4. 文本渲染:支持文本的显示,...

    自控鼠标加速器.rar

    【标题】"自控鼠标加速器.rar" 涉及的核心知识点主要集中在“鼠标加速器”这一技术领域,它是一种能够提升鼠标响应速度和效率的软件工具。在日常使用计算机时,尤其是进行需要频繁鼠标点击或者精确操控的场景,如...

    Java_SE_1.6_API_Introduction.docx

    `java.awt.event`包包含了处理各种事件的接口和类,例如鼠标事件、键盘事件等。这些事件处理器允许程序响应用户的输入交互。 `java.awt.font`包提供了与字体相关的类和接口,如`Font`类用于表示字体样式,`...

    mg-samples-1.6.9.tar.gz_mg samples 1.6_mg-samples1.6_minigui_min

    5. **事件处理**:解释了如何注册事件处理函数,以及如何处理键盘、鼠标和其他输入设备的事件。 6. **多线程编程**:展示了如何在MinigUI中实现多线程应用,这对于复杂的、需要并行处理的任务非常有用。 7. **国际...

    minigui 1.6的mde程序,可以做学习参考

    2. **事件处理**:Minigui通过消息队列和事件驱动模型处理用户的输入,如鼠标点击、键盘输入等,开发者可以通过注册回调函数来响应这些事件。 3. **多线程支持**:Minigui允许在GUI应用中使用多线程,可以提高程序...

    1345个易语言模块

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

    1350多个精品易语言模块

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

    mg-samples-1.6.0.rar_mg-sampl_mg-samples-1.6_mg-samples-str_mg-s

    5. **事件处理**:`event.c`演示了MiniGUI的事件模型,包括鼠标、键盘和定时器事件的处理。理解事件处理机制是编写响应用户输入的程序的关键。 6. **多线程编程**:在嵌入式环境中,多线程编程常用于实现并发操作。...

    飞凌开发板T113-Linux-配置指南-v1.6

    - 通过连接USB鼠标和键盘来验证系统的USB接口是否正常工作。 - 需要确保内核已加载相应的USB设备驱动,并且系统能够识别这些外设。 - **U盘测试**: - 介绍如何通过USB接口连接U盘,并对其进行读写操作的测试...

    易语言模块大全(共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 ...

    miniguii.miniguii.

    MiniGUI通过事件队列来处理用户的输入事件,包括键盘、鼠标和触摸屏事件。开发者需要编写事件处理函数来响应这些事件,实现交互逻辑。 6. **多线程编程**:MiniGUI支持多线程编程,允许开发者在后台执行耗时任务,...

    私藏系统优化工具全集

    - `Tweakui.exe` 很可能是微软的Tweak UI工具,它提供了对Windows界面和设置的高级调整,包括鼠标、键盘、启动项等方面的设置。 - `自动登录设置器.exe` 允许用户设置Windows系统自动登录,省去了每次开机输入密码...

    Java计算器实训报告

    4. 提供鼠标输入的方式,用户可以通过点击按钮或使用键盘输入数值和运算符。 5. 使用图形用户界面(GUI)中的事件委托机制,当用户点击按钮时,程序能及时响应并执行相应的计算。 6. 结果显示在计算器的文本框中,...

Global site tag (gtag.js) - Google Analytics