フレームにまだ到達していないため、テキスト フィールドはまだインスタンス化されていないため、このタスクを実行するエレガントな方法があるかどうかはわかりません。
おそらく、より良いモデルは、データ モデルをビューから分離することです。
データを格納するシングルトン クラスを作成します。
package
{
public class ApplicationModel
{
/** Singleton instance. */
private static var instance:ApplicationModel = new ApplicationModel();
/** Return singleton instance. */
public static function getInstance():ApplicationModel
{
return instance;
}
/** Data Model */
public var username:String;
/** Constructor as singleton enforcer */
public function ApplicationModel()
{
if (instance)
throw new Error("ApplicationModel is a singleton and can only be accessed through ApplicationModel.getInstance()");
}
}
}
次に、キーフレームやクラスなどの任意の場所から、次のいずれかとして実装されたオブジェクトのインスタンスを取得できます。
ApplicationModel.getInstance().username = "test";
または、より良い方法は次のとおりです。
var applicationModel:ApplicationModel = ApplicationModel.getInstance();
applicationModel.username = "test";
あなたの例に従って:
public class MainClass extends MovieClip {
public var username_txt:TLFTextField;
public function MainClass() {
ApplicationModel.getInstance().username = "anything";
}
}
次に、TLFTextField を更新する必要があるフレーム (フレーム 2 のフレーム スクリプト) で、モデルに基づいてテキストを設定します。
username_txt.text = ApplicationModel.getInstance().username
ビューは必要に応じて常に更新されます。