2

オンラインですぐに答えを見つけることができないという簡単な質問です。これはどこのチュートリアルにもあるようですが、おそらく...

Dynamic TextField を持つ MovieClip があります。フィールド txtName のインスタンスを呼び出しましょう。txtName のテキスト フィールドをオンザフライで設定したいので、それをうまく簡単に行う小さな ActionScript (3!) を追加します。

偉大な。動的テキストを持つムービークリップを含む親ムービークリップから同じことをしようとすると、なぜ機能しないのですか? 例:

フレーム #1 の TextField ActionScript 3 を持つ子ムービークリップ:

//------
function SetText(str:String):void {
   txtName.text = str;
}
//------

親 MovieClipには上記の MovieClip が含まれています (movieChild と呼ばれるインスタンス) には、フレーム #1 に次の ActionScript 3 があります。

//------
movieChild.SetText("Hello Child"); // Doesn't work
movieChild.txtName.text = "Hello Child"; // Doesn't work
MovieClip(movieChild).txtName.text = "Blah"; // Doesn't work

私が見逃している簡単なことは何ですか?TextField のテキストは実際にトレースで確認することで設定されることは知っていますが、実際には表示は変わりません。

恥ずかしくて謙虚な答えの準備ができています。

エディ

4

2 に答える 2

1

愚かな質問をして申し訳ありません。単純な名前の間違いの問題に遭遇しました。エラーはスローされず、実行したトレースはすべて正しいように見えましたが、何も変わっていませんでした。

問題の根本は、"HotSpot" ロールオーバー ムービークリップを挿入することに決め、それをテキスト ムービークリップと同じものと呼ぶことにしたことです。投稿する前に、もう少し近くでそれを見つめるべきでした。

エラーがスローされなかったにもかかわらず、その理由はまだわかりません。「パブリック」を使用する限り、それは外部の Actionscript ファイルを使用する場合、つまり timeLine に直接アタッチされたアクションではない場合にのみ機能しませんか?

入力していただきありがとうございます!

于 2010-03-05T15:29:50.990 に答える
1

関数 SetText が公開されていない可能性があります。「関数」の前に「パブリック」を貼り付けて、もう一度試してみてください:)

直接設定しようとする 2 行目でも同じ問題が発生する可能性があります。テキスト フィールドの変数宣言が公開されていない場合。

于 2010-03-05T01:19:33.943 に答える