0

ムービークリップを使用して作成したカスタム ボタンがあります。テキストを表示するために、その中にテキストファイルがあります。ユーザーがボタンをオーバー、アウト、クリックしたときに異なる効果を表示するために、異なる効果を持つ 3 つのフレームを追加し、ユーザーが何らかのアクションを実行したときに mc.gotoAndStop(x) を使用してフレームを変更しました。

昨日まで正常に動作していました。しかし、テキスト フィールドに (異なるフォントの色とスタイルで) 効果を追加して以来、テキスト フィールドのテキスト値は、設計時に設定したデフォルト/初期値に戻っています。

これは期待されていますか?テキストフィールドへの影響を取り除く以外に、これに対する回避策はありますか?

コンポーネントの外側にコード(リスナー)を書き込んでいます(タイムラインではなくメインクラス内)

4

1 に答える 1

0

Flash タイムラインは静的ステート マシンのようなものです。フレームからフレームへ移動すると、そのフレームですべてのドキュメント コードが実行されます (毎回)。また、コンテンツの値をデザイン時の状態にリセットします (つまり、フレーム = デザイン + コード)。このモデルは頭痛の種になる可能性があるため、すべての設計とコードを 1 つのフレームで行うことを強くお勧めします。

ただし、プログラムで外観を変更するのは簡単です。TextFormatを使用し、それをsetTextFormatでTextFieldに適用します。

// Create the textfield
var txt:TextField = new TextField();
txt.text = "Sample Text";
addChild(txt);

// Create the formatting
var format:TextFormat = new TextFormat();
format.font = "Verdana";
format.color = 0xFF0000;
format.size = 10;
format.underline = true;

// Apply the format to the TextField
txt.setTextFormat(format);
于 2013-07-25T14:27:24.300 に答える