- ベストアンサー
flash lite 1.1 でテキストに文字が入力されたらその文字が
flash lite 1.1 でテキストに文字が入力されたらその文字が数字であるかの確認をしたいのですが、テキスト入力の変化の取得はできるのでしょうか? フレームには stop(); を入れてある状態で、フレームは動かしてはおりません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> テキスト入力の変化の取得はできるのでしょうか? Flash Lite 1.x の場合,たいていお決まりの手段ですが, テキストフィールド監視用のMC(ムービークリップ) でも作成して, そのMCのグルグルループ再生を使えば "変化した" ということまでは簡単にわかります。 たとえば _root(メインのタイムライン) に 「my_txt」 という "変数名" のテキスト入力テキストフィールドを用意したとします。 その場合,同じく _root にテキストフィールドとは別の適当なMCを作成して, その適当なMC内のタイムラインを 3フレーム にします。 そのMC内 3フレーム のうちの フレーム1 のキーフレームに次のように書きます。 ------------------------------------------- // 変数 old_txt に _root の変数 my_txt の値を代入 old_txt = /:my_txt; ------------------------------------------- MC内 3フレーム のうちの フレーム3 を空白キーフレームに変換して, そのキーフレームに次のように書きます。 ----------------------------------------------- // もし _root の変数 my_txt の値 が old_txt と違っていれば if(/:my_txt ne old_txt){ // _root の変数 my_txt の値を出力窓に出力 trace(/:my_txt); } // 変数 old_txt に _root の変数 my_txt の値を代入 old_txt = /:my_txt; // このMC内タイムラインを2に戻して再生 gotoAndPlay(2); ---------------------------------------------- 以上のようにテキスト入力に変化があれば, 何某かのアクションをさせることは可能です。 要するに上で作っているしくみは, onClipEvent(enterFrame)ハンドラ や MovieClip.onEnterFrame イベントハンドラメソッド や Event.ENTER_FRAME イベントリスナー がなかった頃の 「自作 EnterFrame」です。
お礼
回答ありがとうございます。 VBは少しやっていたのですが、textchangeイベント的な物があるのかと思って探していました。 多重回しにすると重そうですが、他に手段が無さそうなのでその方法を使ってやってみる事にします。 サンプル等ご丁寧にありがとうございました。