[ActionScript 2.0] TextAreaコンポーネントのフォーカスが外れないときの対処法

[ActionScript 2.0] TextAreaコンポーネントのフォーカスが外れないときの対処法

AS2.0のネタだけど、TextAreaコンポーネントについて問題があったのでメモしてみた。

TextAreaコンポーネントの問題

Flash CS5(Mac版)で TextAreaコンポーネントを使ってるFlash を書き出したときの問題で、一度 TextAreaにフォーカスするとコンポーネント外をクリックしても他のボタンをクリックしたりしても、TextAreaからフォーカスが外れない事がある。

検証してみたら、どうやら FocusOut イベントの後、勝手に FocusIn イベントが走ってたらしい。
バグだろうなこれ…。

対処法

とりあえず、やっつけな方法だけど対処した。

他のボタンをクリックするときに、onRelease イベントの中で Selection.setFocus(this); を追加しています。

btn.onRelease = function() {
    Selection.setFocus(this);
    // 何かの処理
}

クリックしたボタンが、自分自身にフォーカスすれば TextAreaコンポーネントは勝手にフォーカスしないようだ。(コンポーネント外をクリックしたときの場合は対処できない)

後、フォーカスしたときに黄色い枠がつくので、_focusrect = false; は忘れずに。