我想要監聽鍵盤事件的舞臺,並且我想直接在事件發生時捕獲事件(不在冒泡或目標中)。爲什麼我不能這樣做?爲什麼stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown,true)不起作用?
事實上,我似乎根本不能使用useCapture
來處理鍵盤事件。
我想通過按tilda按鈕打開我的內部控制檯窗口,並將焦點更改爲輸入字段。所以,我寫了這樣的事情
public function init(stage:Stage):void
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, onStageKeyDown);
}
private function onStageKeyDown(event:KeyboardEvent):void
{
event.stopImmediatePropagation();
switch(event.keyCode)
{
case Keyboard.BACKQUOTE:
visible = !visible;
stage.focus = visible ? inputField : stage;
break;
}
}
的問題是,它寫入在我輸入「`」的性格,我不希望它做的。所以,我決定嘗試聽取捕獲階段的鍵盤事件來停止它的傳播。但似乎階段不能有捕捉階段,因爲它之前沒有節點。我如何正確處理這種情況?
您可以在捕獲階段使用的keydown。也許如果你解釋你當前的應用程序,並顯示相關的源代碼,有人會真正幫助你... – BadFeelingAboutThis
更新信息附加信息 – user1496491