`
cloud21
  • 浏览: 397482 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

flash 游戏设计笔记:键盘控制

    博客分类:
  • Flex
阅读更多
package com.game.keymanager {
	
	import flash.display.Stage;
	import flash.events.KeyboardEvent;
	import flash.ui.Keyboard;
	import flash.utils.Proxy;
	import flash.utils.flash_proxy;
	
	/**
	 * The KeyObject class recreates functionality of
	 * Key.isDown of ActionScript 1 and 2
	 *
	 * Usage:
	 * var key:KeyObject = new KeyObject(stage);
	 * if (key.isDown(key.LEFT)) { ... }
	 */
	dynamic public class KeyObject extends Proxy {
		
		private static var stage:Stage;
		private static var keysDown:Object;
		
		public function KeyObject(stage:Stage) {
			construct(stage);
		}
		
		public function construct(stage:Stage):void {
			KeyObject.stage = stage;
			keysDown = new Object();
			stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
			stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
		}
		
		flash_proxy override function getProperty(name:*):* {
			return (name in Keyboard) ? Keyboard[name] : -1;
		}
		
		public function isDown(keyCode:uint):Boolean {
			return Boolean(keyCode in keysDown);
		}
		
		public function deconstruct():void {
			stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
			stage.removeEventListener(KeyboardEvent.KEY_UP, keyReleased);
			keysDown = new Object();
			KeyObject.stage = null;
		}
		
		private function keyPressed(evt:KeyboardEvent):void {
			keysDown[evt.keyCode] = true;
		}
		
		private function keyReleased(evt:KeyboardEvent):void {
			delete keysDown[evt.keyCode];
		}
	}
}


暂时不多写了,因为csdn博客出问题,经常写文章都出错。真郁闷,先发一个键盘控制的类。可以进行使用的,在网上看到的。有兴趣尝试一下。用法很简单

第二种方式:使用了一种比较简洁的方式,同样是收集网上一种写法,感觉这种做法也是可以

使用的方法 使用 if(KEY.isDown(键值))这样就可以实现控制到我们希望的对象了。

package com.hero.ImageManager
{
	/*键盘按键判断类.
	使用时先初始化要监听的对象.再判断哪个键被按下了.
	KEY.init(stage);
	KEY.isDown(40);返回true或false
	*/
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.display.DisplayObject;
	public class KEY {
        private static  var keyObj:KEY = null;
        private static  var keys:Object;
        public static function init(_stage:DisplayObject):void {
            if (keyObj == null) {
                keys = {};
                _stage.addEventListener(KeyboardEvent.KEY_DOWN, KEY.keyDownHandler);
                _stage.addEventListener(KeyboardEvent.KEY_UP, KEY.keyUpHandler);
            }
        }
        public static function isDown( keyCode:uint ):Boolean {
            return keys[keyCode];
			 
        }
        private static function keyDownHandler( e:KeyboardEvent ):void {
            keys[e.keyCode] = true;
			trace( keys[e.keyCode]);
        }
        private static function keyUpHandler( e:KeyboardEvent ):void {
            delete keys[e.keyCode];
        }
    }

}


第三种是使用:开关式的判断

  private var Isleft:Boolean;
  private var Isright:Boolean;
  private var Isup:Boolean;
  private var Isdown:Boolean;

  stage.addEventListener(KeyboardEvent.KEY_DOWN,keydown);
stage.addEventListener(KeyboardEvent.KEY_UP,keyup);

进行简单判定

private function keydown(event:Event):void
		{
			if (event.keyCode==Keyboard.UP)
			{
				Isup=true;
			}
			else if (event.keyCode==Keyboard.DOWN)
			{
				Isdown=true;
			}
			else if (event.keyCode==Keyboard.LEFT)
			{

				Isleft=true;
			}
			else if (event.keyCode==Keyboard.RIGHT)
			{
				Isright=true;                   
			}
		}
		private function keyup(event:Event):void
		{

			if (event.keyCode==Keyboard.UP)
			{
				Isup=false;

			}
			else if (event.keyCode==Keyboard.DOWN)
			{
				Isdown=false;
			}
			else if (event.keyCode==Keyboard.LEFT)
			{

				Isleft=false;
			}
			else if (event.keyCode==Keyboard.RIGHT)
			{
				Isright=false;

			}
		}


通过开关式的组合方式进行组合,这种也是一种常见的方式。

通过使用上面三种方式,我们可以简化我们在键盘上的控制。我个人还比较喜欢这三种方式。

通过上面的键盘控制,还可以配合到动画进行创作。

addEventListener(Event.ENTER_FRAME,GameLoop);

好,有兴趣可以把这些使用方式记录下来组合自己的键盘控制方式。

分享到:
评论

相关推荐

    Flash 8学习笔记

    ### Flash 8学习笔记知识点详解 #### 一、基本概念及功能介绍 **Flash 8** 是一款由Adobe公司推出的多媒体创作工具,主要用于创建动画、交互式内容以及复杂的矢量图形。它支持多种媒体格式,如视频、音频、位图等...

    flash游戏开发作业 第三次作业.zip

    这个作业可能包括了对Flash编程语言AS3(ActionScript 3.0)的理解,以及游戏设计的基本原则。 【描述】:“flash开发” 描述简单地提到了“flash开发”,这暗示了整个项目是围绕着使用Flash进行软件开发,尤其是...

    小白Flash脚本学习笔记

    ### 小白Flash脚本学习笔记 #### 一、鼠标事件与监听 在Flash脚本中,处理鼠标事件是常见的需求之一。通过设置鼠标监听器,可以实现对鼠标移动、点击等行为的响应。 ##### 1.1 监听器创建 ```actionscript var ...

    鱼树驱动笔记.7z 韦东山驱动笔记

    4. **LCD驱动**:《鱼树笔记之第15课LCD驱动.pdf》讲解了显示设备的驱动编程,涵盖LCD控制器的工作原理,以及如何编写驱动代码来控制屏幕显示。 5. **触摸屏驱动**:《鱼树笔记之第16课触摸屏驱动.pdf》介绍了触摸...

    软件设计师复习笔记

    ### 软件设计师复习知识点精简版 #### 计算机系统基础知识 - **冯·诺依曼架构**:这种架构定义了计算机系统的五个基本组成部分:存储器、运算器、控制器、输入设备和输出设备。 - **存储器**:负责存储数据和...

    flash学习笔记(一些常用方法的例子)

    掌握这些基础知识,将有助于你构建复杂的Flash应用程序,包括游戏、动画和用户界面。在实际项目中,你可能还会遇到其他与`DisplayObject`相关的属性和方法,比如`localToGlobal()`(反向转换为舞台坐标),`...

    雷神笔记本原理图.pdf

    - 设计中包含多种接口的信号线和控制线,例如PECI (Platform Environment Control Interface) 接口用于处理器与PCH之间的通信,各种时钟信号线包括CPU PCI时钟线,以及特定的电阻和阻抗参数等。 - 系统中存在许多...

    联想笔记本维修图纸:Lenovo T440 T440S VIVL0 NM-A102 jv cb-1 swg svt sch-ec

    - **KEYBOARD CONNECTOR**:键盘连接器的设计。 - **TOUCH PAD CONNECTOR**:触摸板连接器的设计。 - **FAN CONNECTOR**:风扇连接器的设计。 - **G-SENSOR**:重力传感器的设计。 - **TPM**:可信平台模块(Trusted ...

    宏基笔记本维修图纸:Acer E5-772 Wistron Brook BH 14276-1M

    - **KBC (Keyboard Controller)**:键盘控制器,负责管理键盘输入。 - **Intel CPU**:英特尔处理器,提供核心计算能力。 - **DDR3L 1333/1600 Channel A/B**:低电压DDR3内存,提供数据存储。 - **USB 3.0/2.0 ...

    笔记本原理

    - **KBC38857**: 键盘控制器。 - **USB**: 多个USB接口。 - **LVDS&INV**: 用于液晶屏幕的低压差分信号接口与逆变器控制。 - **1394**: FireWire接口。 - **CONX4**: 连接器端口。 - **INSTANTKEY**: 即时启动...

    基于单片机的函数发生器的设计的读书笔记.doc

    输入控制模块负责接收用户的指令,常见的输入方式包括键盘输入,例如4×4矩阵键盘。为了避免按键操作时产生的抖动信号影响系统的稳定性,设计者往往采用软件消抖的方法,即在检测到按键信号后延时一段时间再次检测,...

    笔记本商务模板

    "笔记本模板"是指模板设计中融入了笔记本电脑的视觉元素,可能包括模拟打开的笔记本屏幕、键盘或者其它相关的图形。这样的设计往往意味着技术、便携和高效,非常适合科技公司或远程工作相关的企业使用。用户可以通过...

    笔记本EC芯片逻辑介绍

    W83L951DG模块图展示了该EC芯片的外设布局,其中包括键盘控制器、电源接口、温度传感器和各种其他接口和功能模块。 在开关机管理方面,W83L951DG负责处理电池模式下的上电、掉电、睡眠和恢复时序,以及交流适配器...

    flash编程实例源文件1

    5. **交互设计**:通过按钮、文本输入和键盘/鼠标事件,实现用户与内容的互动。 6. **网络通信**:学习如何使用XMLSocket、URLLoader或XML来实现与服务器的数据交换。 7. **组件使用**:了解如何使用和自定义Flash...

    笔记本EC介绍.pptx

    首先,EC 作为键盘控制器,负责控制键盘和鼠标等外设电源,并提供触摸屏和触摸板等功能。 其次,EC 负责笔记本电脑的一部分电源管理,如笔记本进入待机或关机模式,电源系统的大部分开关;智能电池的电量检测,充...

    ARM 学习笔记.docx

    键盘控制器:ZLG7290** - **功能**: 控制键盘输入。 - **用途**: 接收用户输入指令。 **7. LCD显示器:SHARPLM7M632** - **尺寸**: 7英寸 - **分辨率**: 640x480 - **用途**: 显示输出信息。 #### 二、软件...

    笔记本EC介绍借鉴.pdf

    EC还包含了键盘控制器功能,因此有时也被称为KBC。在系统启动过程中,EC不仅是CPU与BIOS之间的桥梁,还负责键盘输入、充电指示灯、风扇以及其他指示设备的控制。此外,EC还控制着系统的待机和休眠状态。与台式机相比...

    笔记本主板线路图

    6. **Super I/O (PC87382)**: 一种集成的输入/输出芯片,控制如键盘、鼠标、风扇等基本I/O设备。 #### 四、其他功能模块 1. **Power Monitor**: 电源监控模块,用于监控系统的电力消耗情况。 2. **Power Sequence**...

Global site tag (gtag.js) - Google Analytics