2

我遇到了一个问题,当我在舞台上单击时没有调用“FOCUS_OUT”事件。当我单击 TLFTextField 时,我确实收到了“FOCUS_IN”事件。不确定问题可能是什么,任何提示或想法都会很棒。我已经做了一些谷歌搜索,但没有找到任何有用的东西。

这是我拥有的一些代码:

txt_search.addEventListener(FocusEvent.FOCUS_IN, onFocusIn);
txt_search.addEventListener(FocusEvent.FOCUS_OUT, onFocusOut);

private function onFocusOut(e:FocusEvent):void
    {
        trace("--Search Field-- :: FocusOut");
        if(txt_search.text == '')
        {
            txt_search.text = _defaultText;
        }
        else
        {
            //do nothing
        }
    }

private function onMouseEvent(e:MouseEvent):void
{
    if(txt_search.text != '' && txt_search.text != _defaultText)
    {
        //do search
        trace("--Search Feeds--");
    }
    else
    {
        //do nothing
    }
}

谢谢!

4

1 回答 1

1

首先,我建议,尝试使用所有这四个

txt_search.addEventListener(FocusEvent.FOCUS_IN, inHandler);
txt_search.addEventListener(FocusEvent.FOCUS_OUT, outHandler);
txt_search.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
txt_search.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler);

然后,您始终可以通过在其他地方添加侦听器来解决诸如焦点事件之类的事件。例如,如果焦点一个对象上,这意味着它在所有其他对象上都是OUT。当我写这样的东西时,我有时会使用这个事实。通常,我可以只使用一个事件或其他事件。您可能不需要两者。

于 2010-07-09T18:56:21.337 回答