AS3 Flash change combobox value cause keydown even

2019-09-03 02:41发布

I'm using Flash Pro CS6.

I created a fla project and put in a ComboBox. Then i place following code in action:

import flash.events.KeyboardEvent;

this.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
this.stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);

function onKeyDown(e:KeyboardEvent)
{
    trace("Keydown :" + e.charCode);
}

function onKeyUp(e:KeyboardEvent)
{
    trace("Keyup :" + e.charCode);
}

both event work fine at the beginning but when i change the ComboBox value, the event KEY_DOWN no longer work.

here is my sample project: Untitled-1.fla

2条回答
手持菜刀,她持情操
2楼-- · 2019-09-03 03:21

As Baris said, you should use stage.focus = null after selecting combobox element :

cb.addEventListener(Event.CHANGE, cb_on_change)
function cb_on_change(e:Event):void {
    stage.focus = null
}

Click anywhere on the stage dont solve problem if there is no element on the stage that will receive the focus.

查看更多
一纸荒年 Trace。
3楼-- · 2019-09-03 03:31

When you click on the combobox it gets focus which prevents keyboard events from firing on the stage.

Do they start working again if you click anywhere on the stage. Alternatively you can clear the focus with stage.focus = null.

查看更多
登录 后发表回答