« ビストロ喜楽亭@三宿 | メイン | Jump-in.jp »

TextField.onChanged & Object.watch

onChangedのイベントはスクリプトでのTextFieldの変更では動かないらしい。ってことがFlashのヘルプに。


onChanged ハンドラは、ユーザーの操作によって変更が生じた場合にのみ呼び出されます。たとえば、ユーザーがキーボードで入力した場合や、マウスを使用してテキストフィールドの内容を変更した場合、メニューアイテムを選択した場合などです。プログラムによってテキストフィールドが変更されても、テキストフィールドに加えられる変更はコードから識別できるため、onChanged イベントはトリガされません。

ま、スクリプトで分かってるからそこで判断しろってことかー。どうしても判断できない事情って時はObject.watchとかで監視とかになるんかなー。できれば他の方法で解決したいとこ

Object.watchはつかった記憶がないんで軽く検証
メインタイムラインにダイナミックテキストtest_txt


fla var oChange:OnChangedText2 = new OnChangedText2(this)
as OnChangedText2
class OnChangedText2 {
var oListener:Object;
var my_mc:MovieClip;
var scope:Object;
function OnChangedText2(my_mc:MovieClip) {
my_mc.onMouseUp = function(){
this.test_txt.text += "_TES_"
}
my_mc.test_txt.watch("text", watchFunc, "watchのテスト");
}
/*
scopeは対象Objectになる
Delegateクラスなど使用しない場合はmy_mc
*/
function watchFunc(prop, oldVal, newVal, userData) {
//trace(this)
trace("watcProp=" + prop +"の値が変更されましたyo");
trace("oldVal=" + oldVal );
trace("newVal=" + newVal)
trace(userData);
return newVal;
}
}

トラックバック

このエントリーのトラックバックURL:
http://www2.infective.jp/mt/mtdayo-tb.cgi/480

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)