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);
}
}
}
分享到:
相关推荐
自己做的一个小游戏,按空格键开始,按↓计数,统计10秒内↓被按下的次数. 注意: 本源代码的flash版本为cs5.5 低级版本是没办法打开的!
一个基于AS3.0的简单的MP3播放器,实现了显示播放列表、播放、暂停、停止、上一首、下一首、调节音量、调节进度等功能。老师布置的作业,做完了发到网上来,和大家学习交流,还有一些不明白的地方,如如何计算播放...
简洁完整的flash拼图游戏(AS3.0) 用键盘上下左右来挪动图片
AS3.0打字游戏,完整代码包括注释,基于ActionScript3.0
使用as3.0制作的小游戏:俄罗斯方块。主要利用定时器、键盘事件等技术。希望对大家有些参考价值。如有不足之处,敬请提出,大家一起学习进步。
as3.0事件处理ppt,里面包含鼠标事件类、键盘事件类、计时事件类的讲解及范例
支持多点触屏的flash键盘,可以放大缩小,可以支持多点触碰哦~ !!!!!
Intel、AMD、ASMedia、Etron、Fresco Logic、Renesas、VIA可以在PE系统下可以直接安装的USB3.0驱动程序,解决新型号电脑在安装了WIN7系统后,出现键盘和鼠标不能用的问题。 USB3 Drivers Smart Install v...
用 flash 制作仿windows逼真软键盘简单实例 主要应在触摸屏,或者游戏密码输入方面
这是一个基于flash cs6环境下结合as3.0外部类制作的一个适合用于多媒体课件制作的需要输入特殊符号的一个小键盘工具,因为此小工具是在flash cs6环境下制作的,可能低版本例如flash cs3等可能打不开,如果打不开的话...
第 30 章 : 键盘输入 第 31 章 : 鼠标输入 第 32 章 : 触摸、多点触控和手势输入 第 33 章 : 复制和粘贴 第 34 章 : 加速计输入 第 35 章 : AIR 中的拖放 第 36 章 : 使用菜单 第 37 章 : AIR 中的任务栏图标...
flash as3.0 支持键盘响应和物体移动实例源码文件
2.7.3 键盘事件 2.7.4 键码 2.8 小结 第3章 三角学应用 3.1 什么是三角学(Trigonometry) 3.2 角 3.2.1 弧度制(radian)与角度制(degrees) 3.2.2 Flash 坐标系 3.2.3 三角形的边 3.3 三角函数 3.3.1 正弦(Sine) 3.3.2 ...
1 安装WindML3.0和补丁包 基于Senbo提供的BSP进行配置及编译。前提要安装安装windml3.0和windml3_0-cp3补丁包。 2 修改BSP 2.1 包含必要的头文件 在target\config\LX3160_bsp\romInit.s文件中加上 #include ...
这是一关于flash as3.0的键盘监听的详细代码 场景的第一帧查看代码,供新手学习
软件介绍: WinCam 它可以在不需要增加任何外部设备的情况下,直接录下电脑内所有的动态,包括鼠标与键盘的动作。而针对录制后的影像,WinCam 2000软件也提供了编辑功能,能让你插入字幕,以及针对个别的每一幅画面...
一个很小的练习键盘英文的游戏源码,当然还有一个可运行的编译好的swf,非常非常适合初学者用来启发和练手用。这也是我写的第一个小游戏,练手用的
1 安装WindML3.0和补丁包 基于Senbo提供的BSP进行配置及编译。前提要安装安装windml3.0和windml3_0-cp3补丁包。 2 修改BSP 2.1 包含必要的头文件 在target\config\LX3160_bsp\romInit.s文件中加上 #include ...
本人新手,这次的毕业设计,参考了葱泥的FLASH作品。在此感谢。他的作品是用鼠标控制,我改成了用键盘,增加了爆炸动画等级设置等。有需要的可以参考下