【问题标题】:AS3 Flash change combobox value cause keydown events are disabledAS3 Flash 更改组合框值导致 keydown 事件被禁用
【发布时间】:2014-10-24 01:31:51
【问题描述】:

我正在使用 Flash Pro CS6。

我创建了一个 fla 项目并放入了一个 ComboBox。 然后我将以下代码付诸实施:

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);
}

这两个事件一开始都可以正常工作,但是当我更改 ComboBox 值时,事件 KEY_DOWN 不再起作用。

这是我的示例项目: Untitled-1.fla

【问题讨论】:

    标签: actionscript-3 flash events combobox keydown


    【解决方案1】:

    正如巴里斯所说,你应该在选择组合框元素后使用stage.focus = null

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

    点击舞台上的任意位置不要解决如果舞台上没有元素会获得焦点的问题。

    【讨论】:

      【解决方案2】:

      当您单击组合框时,它会获得焦点,从而防止键盘事件在舞台上触发。

      如果您单击舞台上的任意位置,它们会重新开始工作吗?或者,您可以使用stage.focus = null 清除焦点。

      【讨论】:

        猜你喜欢
        • 2010-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-19
        • 2021-01-20
        • 1970-01-01
        • 2010-11-01
        相关资源
        最近更新 更多