?發一個按鍵無按鈕的,按下的時候不進行幀的檢測,省資源,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
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
