Re: [問題] AS3如何在特定時間點偵測組合鍵狀態?
自問自答
留給需要的人
var key:Object=new Object()//新增一個Object
key.isDown=new Object() //新增一個子Object
stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown);//按下時紀錄
stage.addEventListener(KeyboardEvent.KEY_UP, keyup);//放開時除去
stage.addEventListener(Event.ENTER_FRAME, keytest);//按鍵偵測用
function keydown(event:KeyboardEvent):void{
key.isDown[event.keyCode]=true //對應標記設定true
};
function keyup(event:KeyboardEvent):void{
if(event.keyCode in key.isDown){
delete key.isDown[event.keyCode] //刪除對應標記
}
};
function keytest(event:Event){ //每一定時間跑一次,決定於fps
if(key.isDown[65]){ //這是判定語法,判定65(A)
trace("65 isDown")
}
if(key.isDown[68]){
trace("68 isDown")
}
trace("=======================================")
}
※ 引述《KawasumiMai (魔物を討つ者)》之銘言:
: stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownFunc);
: function KeyDownFunc(event:KeyboardEvent):void{
: trace(event.keyCode);
: };
: 這個方法,是屬於被動式的
: 也就是說按鍵按下時才回報按鍵是哪一顆
: 就算是if(event.keyCode==65)
: 也是按鍵按下時才偵測按鍵是否正確並完成以下動作
: 那如果想在特定時間點
: 例如某一影格時間偵測"某個按鍵"是否正按著
: (一個影格只產生效果一次)
: 那麼AS3該怎麼寫呢?
: 又
: trace(event.keyCode)似乎只會產生最後按下的keyCode
: 那如果一個影格內分別需要偵測某A按鍵和某B按鍵個別的按下情形
: 那麼應該要怎麼寫呢?
: 簡單的說就是假設判定一次x+=1
: 那麼fps60的情況每秒就會移動60
: fps30的情況每秒就會移動30
: 而不想要由EventListener獨立執行,跟fps脫離
--
「杏、どうしたんだ?」
「どっ、どうもしてないわよ。あんたこそ、椋とデートじゃなかったの?」
「ずぶ濡れじゃねぇかよ、ふっふっ」
「来ないで!!!!!!!!!!!!!!……
来ないで…お願いだから…」
京都アニメ クラナド~AfterStory~第25話 「もうひとつの世界─杏編」
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.210.139
推
09/24 14:43, , 1F
09/24 14:43, 1F
→
09/24 14:43, , 2F
09/24 14:43, 2F
→
09/24 14:45, , 3F
09/24 14:45, 3F
→
09/24 14:45, , 4F
09/24 14:45, 4F
→
09/24 14:46, , 5F
09/24 14:46, 5F
→
09/24 16:08, , 6F
09/24 16:08, 6F
→
09/24 16:09, , 7F
09/24 16:09, 7F
→
09/24 16:09, , 8F
09/24 16:09, 8F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Flash 近期熱門文章
PTT數位生活區 即時熱門文章