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

まず、これら4つすべてを試してみることをお勧めします

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

次に、他の場所にリスナーを追加することで、フォーカスイベントなどのイベントをいつでも回避できます。たとえば、フォーカスが1つのオブジェクトにINである場合、それは他のすべてのオブジェクトにOUTがあることを意味します。このようなことを書いているとき、私は時々その事実を使います。多くの場合、私はどちらか一方のイベントだけを使用することで逃げることができます。両方は必要ないかもしれません。

于 2010-07-09T18:56:21.337 に答える