首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

flash游戏基本操作:下上左右的移动

2012-11-25 
flash游戏基本操作:上下左右的移动?发一个按键无按钮的,按下的时候不进行帧的检测,省资源,AS3制作的。试试

flash游戏基本操作:上下左右的移动

?发一个按键无按钮的,按下的时候不进行帧的检测,省资源,AS3制作的。试试效果:
[1b]//Key.as:[/1b]
package?CYPL.Game{
import?flash.display.InteractiveObject;
import?flash.events.KeyboardEvent;
import?flash.events.Event;
public?class?Key?{
??private?static??var?keyObj:Object;
??private?static??var?io:InteractiveObject;
??private?static??var?keyTestHandler:Function;
??public?static?function?init(io:InteractiveObject,keyTestHandler:Function):void?{
???Key.io=io;
???Key.keyTestHandler=keyTestHandler;
???keyObj=new?Object??;
???io.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
???io.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler);
??}
??public?static?function?isDown(key:int):Boolean?{
???return?!!keyObj[key];
??}
??private?static?function?keyDownHandler(e:KeyboardEvent):void?{
???keyObj[e.keyCode]=true;
???io.addEventListener(Event.ENTER_FRAME,keyTestHandler);
??}
??private?static?function?keyUpHandler(e:KeyboardEvent):void?{
???delete?keyObj[e.keyCode];
???keyObjHasProperty()?removeKeyTestHandler():null;
??}
??private?static?function?keyObjHasProperty():Boolean?{
???for?each?(var?j:Boolean?in?keyObj)?{
????if?(j)?{
?????return?false;
????}
???}
???return?true;
??}
??private?static?function?removeKeyTestHandler():void?{
???io.removeEventListener(Event.ENTER_FRAME,keyTestHandler);
??}
??public?static?function?get?KeyObj():Object?{
???return?Key.keyObj;
??}
}
}
[1b]使用:[/1b]
import?CYPL.Game.Key;
var?box:Sprite;
with?(box=Sprite(addChild(new?Sprite)))?{
graphics.beginFill(0xff0000);
graphics.drawRect(100,100,100,100);
}
Key.init(stage,keyTestHandler);
function?keyTestHandler(e:Event)?{
if?(Key.isDown(Keyboard.LEFT))?{
??box.x-=5;
}
if?(Key.isDown(Keyboard.RIGHT))?{
??box.x+=5;
}
if?(Key.isDown(Keyboard.DOWN))?{
??box.y+=5;
}
if?(Key.isDown(Keyboard.UP))?{
??box.y-=5;
}
}[1b]附件下载:

?
key.rar
[/1b]
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1993.html

热点排行