2008年02月27日

Flash | CS3のTextInput、TextAreaコンポーネント

TextArea - ActionScript 3.0 コンポーネントリファレンスガイド

Flash CS3のテキスト入力コンポーネントへの入力を監視してゴニョゴニョやろうと、textInputイベントをlistenしてたんだけど、このイベントオブジェクトのpreventDefault()メソッドを呼んでも何も起こらない。そのまま入力できてしまう。

長時間いろいろ試した挙げ句に最終的にソースを読んでみると、コンポーネントの内部でTextFieldからのtextInputイベントを一度キャッチして、イベントオブジェクトを作り直して再送出していた。このイベントオブジェクトのcancelableプロパティはfalseになっていた。
あれ? cancelableプロパティはtrueってドキュメントに書いてあったじゃんと思って再度見てみると、

cancelable:
true は、preventDefault() メソッドを呼び出して、デフォルトの動作をキャンセルします。
と書いてあった。確かにウソは書かれていないのだけど。。。ここではfalseに固定されてるんだから、trueの場合のことなんて書くなよ。

幸いなことにtextInputイベントを再送出している箇所のメソッドがprivateではなかったので、これらのコンポーネントクラスを継承した自前テキスト入力コンポーネントを作って解決。

Posted by otsuka : 22:49 | Comment (0) | Trackback (0)
Comment









名前、アドレスを登録しますか?