在KeyboardEvent
對象中,我瞭解按鍵事件,是否有辦法知道事件是第一次按鍵還是按住按鍵時重複? 我想在按下某個鍵時切換設置;我可以聽到按鍵動作,但我更喜歡在按鍵被按下時採取動作......只要我能夠在按鍵重複事件生成時阻止它來回切換。僅在AS3中檢測到第一個按鍵事件
3
A
回答
3
最簡單的方法是使用KEY_DOWN
偵聽器中的標記刪除或禁用KEY_DOWN
偵聽器,然後在KEY_UP
中添加或啓用它。
8
測試和工程
import flash.events.KeyboardEvent;
stage.addEventListener(KeyboardEvent.KEY_DOWN, onDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onUp);
var keys:Object = {};
function onDown(e:KeyboardEvent):void {
if(! Boolean(e.keyCode in keys)) {
trace("First Time");
keys[e.keyCode] = true;
}
}
function onUp(e:KeyboardEvent):void {
delete keys[e.keyCode];
}
在對象存儲鍵碼的概念和使用刪除鍵起來的最初來自Senoculars庫。請參閱http://www.senocular.com/flash/actionscript/
0
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
private function onKeyDown(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.SPACE)
{
stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
}
}
private function onKeyUp(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.SPACE)
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyUp);
}
}
相關問題
- 1. 如何檢測as3中的多個按鍵事件?
- 2. 僅當按下第一個鍵時觸發JTable按鍵事件
- 3. AS3檢測多個鍵盤按鍵
- 4. AS3:檢測長按鍵
- 5. Objective-C:在按下另一個鍵時檢測到「shift」按鍵
- 6. 如何在wpf中檢測多個按鍵downkeydown事件?
- 7. 鍵盤AS3檢測
- 8. 如何在每個按鍵上做一些事情,而不僅僅是事件的第一步
- 9. 處理一個以上的按鍵和檢測keyup事件
- 10. jquery檢測鍵碼第一次按或第二次按
- 11. 檢測MPMoviePlayerController中的下一個和上一個按鈕事件
- 12. 在PyQt4中檢測鍵盤事件
- 13. javascript - 檢測按鍵或按下按鍵,按鍵事件不會觸發
- 14. 是否有一個檢測僅存在的JQuery事件?
- 15. 在java中檢測到任何按鍵
- 16. JavaScript檢測到一個AJAX事件
- 17. As3鍵盤事件
- 18. AS3鍵盤事件
- 19. 在edittext中檢測按鍵
- 20. 在UWP中檢測沒有事件的按鍵
- 21. 如何在jQuery中檢測自定義按鍵事件?
- 22. 在查詢中檢測鼠標按鍵事件
- 23. 在javascript中檢測多個按鍵
- 24. 在java中檢測多個按鍵
- 25. 在輸入上的第一個按鍵事件中運行一個函數
- 26. 檢測關鍵事件
- 27. 檢測全局鍵事件
- 28. 檢測組合鍵事件
- 29. UI自動化SPY工具沒有檢測到按鍵事件
- 30. Flash可以檢測多少個按鍵?使用as3
這將禁用所有按鍵跟蹤,但是,如果在按下時按下另一個按鍵,該怎麼辦?在實踐中,你應該點擊一個按鈕,也許這不會是一個問題......可能是一個更簡潔的方法。 – 2011-03-24 17:32:22
是的,你是對的。這就是像@Chris這樣的解決方案所發揮的作用。你真的需要爲你的情況量身定做。 – mpdonadio 2011-03-24 17:47:53