Flash CS3 ドキュメンテーション |
|||
| ActionScript 3.0 のプログラミング > テキストの操作 > 静止テキストの操作 | |||
静止テキストは、Flash オーサリングツール内でのみ作成されます。ActionScript を使用して、プログラムによって静止テキストをインスタンス化することはできません。静止テキストは、テキストが非常に短く、(ダイナミックテキストと異なり) 変更が意図されない場合に便利です。Flash オーサリングツールのステージで描画された円または四角形のようなグラフィックエレメントとしての静止テキストについて考えてください。静止テキストはダイナミックテキストよりも制約が大きいので、ActionScript 3.0 は flash.text.StaticText クラスを使用して、静止テキストのプロパティ値を読み取る機能をサポートします。さらに、flash.text.TextSnapshot クラスを使用して、静止テキスト外の値を読み取ることもできます。
ステージ上に配置された静止テキストインスタンスを操作するには、通常は Flash オーサリングツールの [アクション] パネルで flash.text.StaticText クラスを使用します。静止テキストを含む SWF ファイルとやり取りする ActionScript ファイルを操作することもできます。いずれの場合も、プログラムを通じて静止テキストインスタンスをインスタンス化することはできません。静止テキストは Flash CS3 オーサリングツールで作成されます。
ActionScript 3.0 で既存の静止テキストフィールドへの参照を作成するには、表示リスト内のアイテムに対して反復処理を行い、変数を割り当てます。次に実際の使用例を示します。
for (var i = 0; i < this.numChildren; i++) {
var displayitem:DisplayObject = this.getChildAt(i);
if (displayitem instanceof StaticText) {
trace("a static text field is item " + i + " on the display list");
var myFieldLabel:StaticText = StaticText(displayitem);
trace("and contains the text: " + myFieldLabel.text);
}
}
静止テキストフィールドへの参照が存在すると、ActionScript 3.0 でそのフィールドのプロパティを使用できます。次のコードがタイムラインのフレームに関連付けられ、myFieldLabel という名前の変数が静止テキスト参照に割り当てられていると仮定します。この例では、myField という名前のダイナミックテキストフィールドが myFieldLabel の値 x と y を基準に配置され、myFieldLabel の値を再表示します。
var myField:TextField = new TextField(); addChild(myField); myField.x = myFieldLabel.x; myField.y = myFieldLabel.y + 20; myField.autoSize = TextFieldAutoSize.LEFT; myField.text = "and " + myFieldLabel.text
既存の静止テキストインスタンスをプログラムで操作する必要がある場合は、flash.text.TextSnapshot クラスを使用して、flash.display.DisplayObjectContainer の textSnapshot プロパティを操作します。これは、DisplayObjectContainer.textSnapshot プロパティから TextSnapshot インスタンスを作成することになります。次に、このインスタンスにメソッドを適用して、値を取得するか、静止テキストの部分を選択することができます。
たとえば、テキスト "TextSnapshot Example" を含む静止テキストフィールドをステージ上に配置することができます。次の ActionScript をタイムラインのフレーム 1 に追加します。
var mySnap:TextSnapshot = this.getTextSnapshot(); var count:Number = mySnap.getCount(); mySnap.setSelected(0, 4, true); mySnap.setSelected(1, 2, false); var myText:String = mySnap.getSelectedText(false); trace(myText);
TextSnapshot クラスは、テキストをアプリケーションの別の部分の値として使用する場合に、ロードされた SWF の静止テキストフィールドからテキストを取得するときに便利です。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000235.html