2

このコードを正しく機能させるのに問題があります。ボタン内のテキストフィールドのテキストを変更したい。これは機能しますが、upStateに対してのみ機能します。ボタンにカーソルを合わせるかクリックすると、元の名前に戻ります。anyStateとして定義する方法はありますか?

var doc:DisplayObjectContainer = m1.upState as DisplayObjectContainer;
var tf:TextField = doc.getChildAt(1) as TextField;

var boldText:TextFormat = new TextFormat();
boldText.bold = true;

tf.text = "Sterno Cleido Mastoid";
tf.setTextFormat(boldText);

例: http ://www.testdummies.dk/dynamictext.fla

4

2 に答える 2

2

問題は、コードがボタンのアップ状態のテキストのみを変更していることです。他の州は影響を受けません。

コードをコピーして貼り付けるだけで、オーバー状態とダウン状態に同じ変更を加えることができます。既存のコードの後に​​このコードを追加すると、次のようになります。

doc = m1.overState as DisplayObjectContainer;
tf = doc.getChildAt(1) as TextField;
tf.text = "Neck";
tf.setTextFormat(boldText);

doc = m1.downState as DisplayObjectContainer;
tf = doc.getChildAt(1) as TextField;
tf.text = "Neck";
tf.setTextFormat(boldText);

これは、ボタンの単純なテキスト変更をコーディングするのに厄介な方法です。カスタムボタンクラスを作成したり、movieClipをボタンとして機能させたりする方がはるかにクリーンです。これらのいずれかを学ぶのに助けが必要な場合は、新しい質問を作成してください。

于 2012-07-18T23:48:20.990 に答える
0

ボタンの上にある独自のレイヤーにテキストフィールドを配置するので、ボタンの状態に関係なく、常に同じテキストになります。

または、そのコードをコピーして各ボタンの状態に貼り付けてから、現在の状態を反映するようにコードを変更することもできます。(最初の解決策はより速く/より簡単ですが)

于 2012-07-18T22:45:13.227 に答える