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;
}
}