AS3.0 键盘事件

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

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

如源代码:

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


只要稍改一下 转移 [color=red]stage[/color] 把键盘事件的监听具体到某个对象上, 就不同了,这就需要将舞台焦点设置到该对象上,方法如下:
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);
}
}
}
Linux 4.19、Linux 5.10、Linux 6.1 三个版本详细分析 Linux 4.19发布日期:2018年10月22日LTS 状态:是长期支持版本,官方支持到2024年12月。Linux 5.10发布日期:2020年12月13日LTS 状态:LTS 版本,官方支持到2026年12月。Linux 6.1发布日期:2022年12月11日LTS 状态:不是官方的LTS版本,但通常社区会为新的版本提供一定时间的支持。定位:稳定性和长期支持,广泛应用于多种平台,尤其是嵌入式系统和服务器。主要优势:稳定性高,广泛的硬件支持,核心功能可靠。 阅读详情

相关推荐

AS3.0键盘事件示例

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

Flex(AS 3.0)实现快捷键功能--监听键盘事件

实现快捷键的功能其实很简单,就是监听键盘事件,再检测是按下或弹起了哪个键,然后做对应的操作就可以了。如果要实现一般的组合键(指一般的数字和字母的组合或上下左右键的组合)也不难,但是如果想要在网页中打开的swf文件中实现特殊点的组合键(比如:Ctrl+Shift+Alt+其他基本键)就可能有问题,因为浏览器本身可能已经占用了某些这种快捷键(比如在IE 7 中 Ctrl+数字键 表示切换已打开的选项卡

txiejun的专栏 7361

安卓库存管理系统及其源代码+使用说明(毕设参考)

安卓库存管理系统是一款应用程序,用于维护和跟踪你的产品供应以及库存控制。该软件通过输入产品名称、产品ID、购买率和产品描述等信息来维护产品。它还监管产品销售。安卓库存管理系统项目(也称为库存系统)是一种跟踪整个供应链上的物品的方法,从采购到生产再到最终销售。它决定了你如何在公司中处理库存管理。通过在iOS或安卓智能手机上安装库存管理移动应用,你可以跟踪资产和库存。现在,手机可以替代传统的条形码扫描器/移动计算机,用于条形码/二维码扫描、数据录入和查找。库存管理系统示例库存指的是公司持有以在市场上出售以获取利润的所有物品、商品、商品和供应品。如果一位报纸销售者使用车辆向客户分发报纸,那么只有报纸会被视为库存。汽车将被视为有价资产。为什么安卓库存管理系统项目很重要?小型企业需要库存管理,因为它有助于他们避免缺货、管理多个地点,并保持准确的记录。尝试手动完成一切比使用库存解决方案更困难。在实际库存中使用移动设备的优势是什么?通过将移动设备纳入实际计数过程,你可以避免计数过程中的昂贵错误。由于物品直接扫描到库存监控系统中,公司不必担心

AS 3.0键盘鼠标事件

/* Key Pressed 事件 按任一键盘键时,执行以下定义的函数 fl_KeyboardDownHandler。 说明: 1. 在以下"// 开始您的自定义代码"行后的新行上添加您的自定义代码。 该代码将在按任一键时将执行。 */ stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandl

shaoxiaoning的专栏 2100

as3.0 键盘事件小实例

下面的代码实现键盘操作图片左右走动importflash.events.KeyboardEvent; importflash.display.Loader; importflash.net.URLRequest; stage.addEventListener(KeyboardEvent.KEY_DOWN,keyUpFunction); varloader:Load...

weixin_34032779的博客 668

AS3.0 中键盘事件、数组使用及随机数生成

  回答http://topic.csdn.net/u/20091202/22/50f8b8f6-638a-47cb-990e-a2f36f15bbfc.html?62099问题 交流一下AS键盘事件、数组使用及随机数生成功能比较简单,详细代码如下请看其中的注释: <!--[CDATA[ private var srcArray:Array = new Array(

Richard_jun's Blog 4335

as3.0编程:键盘的操作

键盘的点击与弹起: Source:         stage.addEventListener(KeyboardEvent.KEY_DOWN, xKeyDown); stage.addEventListener(KeyboardEvent.KEY_UP, xKeyUp); function xKeyDown(event:KeyboardEvent):void{         kb...

wangangie20 407

Flash CS3 +AS3键盘事件

http://www.webstudio.com.cn/blog/?p=547 [url=http://www.riaos.com]RIA知识库[/url] [url=http://www.riaos.com]flex[/url] [url=http://www.riaos.com]RIA[/url] 在As3.0中的键盘事件使用中,除了键盘事件之外,还要先获取它的焦点.如果不想指定焦...

lan_13217的专栏 357

学习AS3.0类属性:KeyBoard/KeyboardEvent

使用目的:键盘输入的控制/键盘事件的处理。 说明:Keyboard类是不需要通过构造函数就可以使用其方法和属性的基类。使用Keyboard类的方法可以生成用户能够通过标准键盘控制的界面。Keyboard类的属性是一些常数,这些常数表示用于控制应用程序的常用按键(如PageUp和PageDown)。在AS3.0中,任何对象都可以通过监听的设置来监控对于对象的键盘操作,与键盘所相关的操作事件都属于K...

Makenna's World 776

as2 点击事件与键盘事件

键盘事件   AS2.0中:代码如下:   var keyListener:Object = new Object;   keyListener.onKeyDown = function(){     switch(Key.getCode())     {       case Key.UP: statements; break;       ca...

weixin_33953384的博客 658

as 3.0基础_0007_事件

关于as 3.0 的 函数 包 异常 等等。由于我学习赶时间暂时不发表博文。以后有空补上!! 1.事件:(常见有鼠标事件,键盘事件) 创建flash源文件,添加一元件并将实例名改为mc_1。 创建MyEvent.as类文件,添加类关联。输入一下...

159

AS3.0中的事件类型分类

AS3.0中的事件类型分类      Event事件类型: ACTIVATE       激活事件 DEACTIVATE 对象休眠事件 ADDED      可视对象添加事件 ADDED_TO_STAGE 可视对象添加到舞台事件 REMOVED 可视对象移除事件 REMOVED_FROM_STAGE 可视对象从舞台移除事件 ENTER_FR

这样的你要多久 4311

AS3代码】键盘的输入和输出

package{    import flash.display.Sprite;    import flash.events.KeyboardEvent;        public class Main extends Sprite    {                    public function Main():void        {            init();  ...

weixin_33971977的博客 329

AS3代码】Keyboard键盘操作!

package{    import flash.display.Sprite;    import flash.display.Stage;    import flash.events.KeyboardEvent;    import flash.ui.Keyboard;    import flash.events.Event;        public class Main extend...

weixin_33755554的博客 294

AS3 键盘的事件与实现

学习AS3 事件机制,看到一个简单的actionscript 游戏动画,比较简单,一个红球按照你方向键移动 as3 学习群:41394416 脚本娃娃 代码如下: package { import flash.display.SpreadMethod; import flash.display.Sprite; import flas...

weixin_34380296的博客 100

键盘事件

package { import flash.display.Sprite; import flash.events.KeyboardEvent; public class example extends Sprite { public function example (){ stage.focus = this; addEventListener(Keyb

十面埋伏 585

AS3代码】键盘控制影片剪辑上下左右移动!!

package{    import flash.display.Sprite;    import flash.events.Event;    import flash.events.KeyboardEvent;    import flash.events.TimerEvent;    import flash.utils.Timer;    import flash.utils.getTi...

weixin_33757911的博客 385

as3总结(1)

<br />  最近开始做as3,遇到很多问题,今天下午集中解决了一下,决定总结一下,便于以后温故而知新嘛。<br /> 一、用代码添加文本框一般都是批量添加,但是添加之后如何对文本框进行操作呢?这时候可以设一个数组,然后将生成的文本框添加到数组中,通过数组对文本框进行操作。<br /> 1、下面的代码用于生成3个文本框并将其添加进数组<br /> var txt_Arr:Array = new Array();<br /> for (var j = 0; j <3; ++j) {<br />  

只要开心就好 1226
上一篇: 关于DisplayObject的 stage 属性
下一篇: AS 绘制多条平滑曲线(基于二次贝塞尔曲线)
dishell
博客等级 码龄18年 30粉丝 21原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值