`
dishell
  • 浏览: 68008 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

AS3.0 键盘事件

阅读更多
1,问题: 在开发应用中,需要对键盘事件做监听,但是要根据 focus 焦点 不同而 是否需要做反应。例如当焦点在 场景地图 上,这时候的快捷键 起作用 ,而打开一个应用程序后例如聊天框,聊天这时候 虽然也是键盘 事件 但我们不希望触发执行快捷键判断 之类的 。

键盘事件的监听 是要对stage做监听,那么当上述聊天情况发生时,聊天应用存在于stage中,不可避免的触发判断。

如源代码:

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler,false,0,true);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler,false,0,true);


只要稍改一下 转移 stage 把键盘事件的监听具体到某个对象上, 就不同了,这就需要将舞台焦点设置到该对象上,方法如下:
stage.focus = child;  // child 是注册键盘事件的对象

测试代码如下:
package {
    import flash.display.Sprite;
    import flash.events.*;
    
    import org.aswing.ASColor;
    import org.aswing.AsWingManager;
    import org.aswing.AssetPane;
    import org.aswing.BorderLayout;
    import org.aswing.GridLayout;
    import org.aswing.JFrame;
    import org.aswing.JLabel;
    import org.aswing.JLoadPane;
    import org.aswing.JPanel;
    import org.aswing.border.LineBorder;

    public class KeyboardEventExample extends Sprite {
        private var bgColor:uint = 0x00CCFF;
        private var size:uint = 80;
  

        public function KeyboardEventExample() {
            var child:Sprite = new Sprite();
            child.graphics.beginFill(bgColor);
            child.graphics.drawRect(0, 0, size, size);
            child.graphics.endFill();
            addChild(child);
           
            stage.focus = child;  //  设置焦点后,方可注册键盘事件

            child.addEventListener(MouseEvent.CLICK,__setFoucs);
            child.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
            child.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
            
            initAswing();
        }
        private function initAswing():void {
            AsWingManager.initAsStandard(this);
            var jf:JFrame = new JFrame();
            var pane:JPanel = new JPanel(new BorderLayout());
            var centerPane:JPanel = new JPanel(new GridLayout(6,12,1,1));
            pane.append(centerPane,BorderLayout.CENTER);
            pane.append(new JLabel("test"),BorderLayout.SOUTH);
            jf.setContentPane(pane);
            jf.setLocationXY(100,200);
            jf.setSizeWH(400,300);
            jf.show();
        }
        private function __setFoucs(e:MouseEvent):void{
            var child:Sprite = e.currentTarget as Sprite;
            stage.focus =child;
            //child.graphics.beginFill(bgColor);
            child.graphics.lineStyle(2,0xffbbf0,1);
            child.graphics.drawRect(0, 0, size, size);
        }
        private function keyDownHandler(event:KeyboardEvent):void {
            trace("keyDownHandler: " + event.keyCode);
            trace("ctrlKey: " + event.ctrlKey);
            trace("keyLocation: " + event.keyLocation);
            trace("shiftKey: " + event.shiftKey);
            trace("altKey: " + event.altKey);
        }

        private function keyUpHandler(event:KeyboardEvent):void {
            trace("keyUpHandler: " + event.keyCode);
        }
    }
}

分享到:
评论

相关推荐

    AS3.0键盘事件示例

    自己做的一个小游戏,按空格键开始,按↓计数,统计10秒内↓被按下的次数. 注意: 本源代码的flash版本为cs5.5 低级版本是没办法打开的!

    as3.0开发游戏adobe

    例如,通过监听键盘事件,玩家可以控制角色移动。 11. **游戏逻辑**:编写游戏的核心算法,如分数计算、游戏状态管理(如开始、暂停、结束)、AI(人工智能)等。 12. **资源管理**:学会有效地加载和管理图片、...

    类似超级玛丽游戏as3.0代码

    AS3.0中的键盘监听器(KeyboardEvent)用于捕获用户输入,根据输入更新角色的运动状态。碰撞检测通常通过矩形碰撞算法实现,确保角色与环境、敌人、道具等的交互。 2. 场景转换:游戏世界由多个关卡组成,AS3.0中的...

    AS3.0游戏18例源码包

    AS3.0游戏18例源码包是一个针对初学者设计的资源集合,它提供了18款基于ActionScript 3.0(AS3.0)编程语言开发的简单小游戏的完整源代码。这个源码包旨在帮助新手快速理解和掌握AS3.0在游戏开发中的应用。...

    as3.0小球游戏源码

    AS3.0使用事件驱动模型,如键盘输入、鼠标点击等事件,都会被相应的事件监听器捕获并处理。在`main.as`中,可能会设置这些事件监听器来响应用户的操作。 7. **图形渲染**: Flash Player支持矢量图形,`ball.as`...

    flash as3.0射击游戏

    2. **强大的事件模型**:AS3.0的事件驱动模型允许程序对用户交互或其他事件做出响应,如鼠标点击、键盘输入或网络数据加载。在射击游戏中,这种模型用于处理玩家的射击、敌人的出现和碰撞检测等事件。 3. **改进的...

    AS3.0.rar_as3.0

    AS3.0的事件驱动模型也是其一大亮点。事件处理机制让程序响应用户交互变得更加简单,比如点击按钮、键盘输入等。你可以注册事件监听器并定义相应的回调函数,当特定事件发生时,这些函数会被自动调用。例如,`...

    FLASH AS3.0部分常用代码

    本资源摘要信息将详细介绍 FLASH AS3.0 部分常用代码,包括影片only的残影效果、影片随机复制、鼠标拖动影片、影片属性、鼠标事件、键盘事件、全屏代码、退出代码、时间轴上停止代码、按钮代码、播放和停止代码、...

    Flash+as3.0小游戏—接牛奶

    【Flash+AS3.0小游戏—接牛奶】是一款利用Adobe Flash和ActionScript 3.0技术开发的互动娱乐项目。在这款游戏中,玩家的目标是控制一个容器,以便接住不断下落的牛奶瓶,测试玩家的反应速度和手眼协调能力。通过这款...

    as3.0超级玛丽源码

    在超级玛丽中,主角玛丽的动作控制(如跳跃、移动、吃蘑菇)需要通过键盘事件来实现。AS3.0提供了一套完整的事件监听机制,我们可以利用`KeyboardEvent`监听键盘输入,并根据不同的键值改变玛丽的状态。同时,为了...

    as3.0贪吃蛇源码 实现了基本功能

    - AS3.0使用` KeyboardEvent `类来监听用户的键盘输入,如上、下、左、右箭头键,从而控制蛇的移动方向。 - 必须确保在游戏过程中,蛇不能立即改变方向以防止穿过自身。 4. **食物生成** - 食物通常在游戏区域内...

    flash as3.0 留言板

    6. **用户输入处理**:AS3.0可以监听键盘和鼠标事件,对用户输入进行处理。例如,监听文本输入框的文本改变事件,实时更新预览或验证用户输入。 7. **时间轴控制**:尽管AS3.0鼓励使用类和面向对象编程,但仍然可以...

    as3.0实现的一个碰撞类小游戏

    总的来说,“as3.0实现的一个碰撞类小游戏”涉及了AS3.0的许多核心概念,包括事件驱动编程、图形渲染、碰撞检测、面向对象设计、性能优化、音频处理和数据存储等。通过深入学习和实践这些知识点,开发者可以创建出...

    15款as3.0小游戏

    本压缩包包含15款使用AS3.0编写的简单小游戏,这些游戏可以作为学习AS3.0的实践案例,帮助开发者理解其基本语法、类结构和事件处理机制。 1. **基础知识** - **面向对象编程**:AS3.0是完全面向对象的语言,它支持...

    Advanced+AS3.0+Animation高级动画编程+源文件+中英文PDF.rar

    学习AS3.0的基础语法、对象模型、事件处理以及类和包的概念是深入动画编程的前提。 2. **高级动画原理**:包括时间轴控制、补间动画、形状补间、骨架动画、物理模拟等,这些都是创建动态效果和游戏的重要技术。深入...

    as3.0mp3播放器

    一个基于AS3.0的简单的MP3播放器,实现了显示播放列表、播放、暂停、停止、上一首、下一首、调节音量、调节进度等功能。老师布置的作业,做完了发到网上来,和大家学习交流,还有一些不明白的地方,如如何计算播放...

    flash AS3.0空战小游戏射击游戏源码

    1. **ActionScript 3.0基础**:AS3.0是Flash中的核心,它包括类、对象、事件处理、显示列表管理等概念。游戏的各个组件,如角色、敌人、子弹等,都可能被设计为独立的类,通过继承和组合实现功能模块化。 2. **显示...

    flash打砖块的源代码,as3.0

    挡板的移动是用户输入的一部分,AS3.0通过`KeyboardEvent`类监听键盘事件,实现挡板随着鼠标或手指的移动而移动。此外,游戏的开始、暂停和重置等功能也需要响应用户操作。 6. 图形渲染: Flash提供了强大的绘图...

Global site tag (gtag.js) - Google Analytics