恐れません。拡張テキストフィールドクラスを追加する場合は、ActionScriptを使用する必要があります。
編集:ハックの方法があります。ソース: http: //board.flashkit.com/board/archive/index.php/t-738887.html
実際、私は以前にこの正確な問題に遭遇しました。私の場合、他の非コーダーアーティストが使用できるように、追加の動作を備えたテキストフィールドを作成しようとしていました。元のソリューションはすべてas3ですが、致命的な欠陥があり、現在のソリューションはas3とjsflの組み合わせです。
すべてのas3ソリューションは、2つのことを除いて優れています。まず、ビルド時ではなく実行時に発生します。つまり、ムービーが正しく初期化されない時間はごくわずかですが実際の部分です。第二に、ムービーに複数のフレームがある場合はうまく再生されません。基本的な考え方は、変更するTextFieldを検出し、それらを置き換えるものを構築してから、ステージ上でそれらを置き換えることです。これを行うには、TextFieldを拡張するか、TextFieldを含み、そのインターフェイスを処理するクラスを作成します。あなたが最初にやっているとしましょう。気になるすべてのフィールドをコピーするコンストラクターをSmartTextFieldに追加します。
public function SmartTextField(TextField tf)
{
this.text = tf.text; //continue with copy of anything relevant.
}
メインムービーには、置換するTextFieldを検出して置換するコードがあります
var toreplace:Array = findTextFields();
var tf:TextField;
var stf:SmartTextField;
var where:int;
for (int i = 0; i < toreplace.length;i++)
{ tf = TextField(toreplace[i]);
stf = new SmartTextField(tf);
where = getChildIndex(tf);
addChildAt(stf,where);
removeChild(tf);
}
上記の点を除いて、これは正常に機能します。
JSFLソリューションは少し複雑すぎて詳細を説明できませんが、基本は次のとおりです。必要な新しい動作でテキストフィールドをラップするas3クラスがあります。選択したアイテムを反復処理するjsflスクリプトを記述し、それがテキストフィールドの場合は、新しいラッパークラスのベースクラスを持つシンボルに変換します。これには、作成者時に発生するという利点があり、位置、インスタンス名、その他のものが自動的に保持されます。jsflには、解決すべき小さな厄介な癖がたくさんあるという欠点があります。
編集:もちろん、これが1つの映画のみの場合は、jsflコンバータースクリプトを使用せずに、手動で実行することもできます。シンボル->ラッパーベースクラスに変換します。