• ベストアンサー

テキスト入力した時のイベントハンドラ

FlashMXをWindowsXPで使用しています。 まず、テキスト入力用のボックスを作って、 そこにテキストが入力されたタイミングで、 スクリプトを実行したいのです。 つまり、1文字入れたり、1文字削除したり、 テキストに更新があった場合、リアルタイムで 処理するイベントを起こしたいのです。 この場合って、どんなイベントハンドラを 使えばよろしいでしょうか? keyDownを使えばなんとか・・・と思ったのですが、 いまいちうまくできず・・・。 知っている方、どうかご教授くださいませ。

質問者が選んだベストアンサー

  • ベストアンサー
  • HapHands
  • ベストアンサー率73% (19/26)
回答No.1

こんばんは。 通常はonChangedイベントハンドラを使用します。 例えばメインタイムラインに配置されている入力用のテキストフィールドに「input_txt」というインスタンス名を付けたとしたら、メインタイムラインのフレームアクションに以下のような感じでスクリプトを記述します。 -- input_txt.onChanged = function(){ //実行したい処理 } -- ですが、日本語が入力できるテキストフィールドにonChangedイベントハンドラを設定する場合には注意が必要です。 IMEパッドからテキストフィールドに文字を流し込むときにonChangedイベントが発生しますが、流し込まれた文字数回このイベントが発生することになります。 しかも各イベントごとにtraceアクションで入力用テキストフィールドの内容を書き出してみると、全てのイベントで文字が流し込まれた後のテキストの内容になっています。 こういったバグと言って差し支えないような仕様になっていますので、実際にonChangedイベントハンドラを使用するには少々工夫が必要になりそうです。

four
質問者

お礼

情報ありがとうございます! なるほど、このメソッドの書き方は知りませんでした・・・。 ActionScriptは、まだ始めたばかりなので、 もっと勉強します。 詳しいご説明ありがとうでした!

関連するQ&A

専門家に質問してみよう