ActionScript 3.0 で既存の静止テキストフィールドへの参照を作成するために、表示リスト内のアイテムを反復処理することができます。例えば、次の例では、表示リストに静止テキストフィールドが含まれるかどうかを確認し、フィールドを変数に割り当てます。
テキストフィールドを動的に作成する場合は、
TextField クラスのメソッドを使用すると、オーサリング時または実行時に作成したダイナミックテキストフィールドやテキスト入力フィールドにテキストを設定、選択、および操作できます。
ActionScript には、テキストを実行時にフォーマットする方法がいくつか用意されています。TextFormat クラスでは、TextField オブジェクトの文字フォーマットと段落フォーマットを設定できます。
Flash Player では、テキストのフォーマットに利用できる HTML タグのサブセットをサポートしています。
注意:デフォルトの動作であるテキストフィールドへのテキストの追加は、Flash Player がイベントを生成するときにのみ発生します。この場合は、ユーザーがテキストを入力しようとするときです。
2 つのテキストフィールドが作成され、1 つはユーザー入力用、もう 1 つ(
テキストフィールドのデフォルトサイズは 100 × 100 ピクセルです。
テキストフィールドの
クラスは、選択された各文字の周囲に矩形を描画するために使用する
最初のテキストフィールドは、ユーザーが選択するテキストを保持します。テキストがクリックされたが、選択されていないことを確認するために、
コンストラクターで、
<img src = 'filename.jpg' id = 'instanceName' >
イメージ(
コンストラクターで、
例に示すように、カウントされたテキストを表示する
追加されたテキストは、ウォルト・ホイットマンの Song of Myself から抜粋した 2 行です。新しい TextFormat オブジェクト(
これらのパラメーターに値を指定しない場合、このメソッドはテキストフィールド内のすべてのテキストに適用されます。
次の表に、使用できる 3 つのシンタックスを示します。
TextField は
同じ名前およびスタイルで
注意:このメソッドは、テキストフィールドにスタイルシートが適用されていると機能しません。
2 つの異なる TextField オブジェクトが作成され、
注意:このメソッドは、テキストフィールドにスタイルシートが適用されていると機能しません。
ユーザーによって手作業で挿入されたテキスト、または
注意:このメソッドは、テキストフィールドにスタイルシートが適用されていると機能しません。
TextFormat オブジェクトのフォーマット情報には、文字レベルフォーマットと段落レベルフォーマットの 2 種類があります。テキストフィールド内の各文字にも、フォント名やフォントサイズ、ボールド、イタリックなどの文字固有のフォーマットを設定できます。
段落の場合は、段落の最初の文字を調べて段落全体のフォーマット設定を判別します。段落のフォーマット設定には、左インデント、右インデント、一行目インデントなどがあります。
ユーザーによって手作業で挿入されたテキスト、または
"Times-12"
.
To embed the font, follow these steps:
このプロパティの値を設定するには、次のストリング値を使用します。
選択範囲のインデックスは 0 から始まります。つまり、最初の位置は 0、2 番目の位置は 1 で、以下同様に続きます。
この例を実行し、TextField をクリックしてテキストを選択します。次に、テキストを選択せずにテキストフィールドをクリックします。選択なしでテキストをクリックする場合、
注意:
var my_txt:TextField new TextField(); my_txt.text = "Flash Macintosh version"; var my_fmt:TextFormat = new TextFormat(); my_fmt.color = 0xFF0000; my_txt.defaultTextFormat = my_fmt; my_txt.setSelection(6,15); // partial text selected - defaultTextFormat not applied my_txt.setSelection(6,23); // text selected to end - defaultTextFormat applied my_txt.replaceSelectedText("Windows version");
注意: このプロパティはテキストフィールドにスタイルシートが適用されていると設定できません。
テキストフィールドの
flash.text.GridFitType
settings. It assumes that you have a font
embedded in the Library with the linkage identifier set to "Times-12"
.
To embed the font, follow these steps:
使用されるグリッドフィッティングのタイプによって、太い水平線と垂直線がピクセルグリッドまたはサブピクセルグリッドに合わされるか、まったく合わされないかが決定されます。
Flash Player では、次の HTML タグがサポートされています。
Flash はテキストフィールドに埋め込まれたメディアをフルサイズで表示します。埋め込むメディアのサイズを指定するには、
一般に、テキストフィールドに埋め込まれたイメージは、
アプリケーションセキュリティサンドボックスの AIR コンテンツの場合、ActionScript TextField オブジェクトの HTML コンテンツにある
Flash Player および AIR では、次の HTML エンティティがサポートされています。
Flash Player および AIR ではまた、&(ASCII のアンパサンド)や €(Unicode の € シンボル)など、文字コードの明示的な指定もサポートされています。
比較するために、
ストリングがキャレット(^)文字で始まる場合、そのストリングに含まれる文字を除いて、すべての文字を入力できます。ストリングがキャレット(^)文字以外で始まる場合は、そのストリングに含まれる文字のみを入力できます。
次の例では、大文字、スペース、および数値のみをテキストフィールドに入力できます。
my_txt.restrict = "A-Z 0-9";
次の例では、小文字を除くすべての文字を入力できます。
my_txt.restrict = "^a-z";
円記号を使用して ^ または - のリテラルを入力できます。許容される円記号のシーケンスは \-、\^、または \\ です。円記号をストリングの 1 文字として実際に使用するには、ActionScript で指定するときに円記号を 2 つ続けて指定する必要があります。例えば、次のコードで表されているのはダッシュ(-)とキャレット(^)のみです。
my_txt.restrict = "\\-\\^";
ストリング内では任意の場所で ^ を使用し、入力できる文字と除外する文字を切り替えることができます。次のコードでは、大文字のみを入力できます。ただし、大文字の Q を除きます。
my_txt.restrict = "A-Z^Q";
my_txt.restrict = "\u0020-\u007E";
垂直スクロールの単位は行数ですが、水平スクロールの単位はピクセル数です。水平スクロールをピクセル単位で指定するのは、一般的に使用されるフォントのほとんどがプロポーショナルフォントであり、文字の幅が一定でないためです。垂直スクロールの場合は、通常、1 行のテキストの一部だけ表示されるよりも行全体が表示されることが好まれるため、行単位でスクロールします。1 行の中に複数のフォントが存在する場合でも、使用されている最大のフォントに合わせて行の高さが調整されます。
注意:
水平スクロールの単位はピクセル数ですが、垂直スクロールの単位は行数です。表示される最初の行がテキストフィールド内の最初の行の場合、scrollV は 1 に設定されます。0 ではありません。水平スクロールをピクセル単位で指定するのは、フォントのほとんどがプロポーショナルフォントであり、文字の幅が一定でないためです。垂直スクロールの場合は、通常、1 行のテキストの一部だけ表示されるよりも行全体が表示されることが好まれるため、行単位でスクロールします。1 行の中に複数のフォントが存在する場合でも、使用されている最大のフォントに合わせて行の高さが調整されます。
この例を実行し、TextField をクリックしてテキストを選択します。次に、テキストを選択せずにテキストフィールドをクリックします。選択なしでテキストをクリックする場合、
この例を実行し、TextField をクリックしてテキストを選択します。次に、テキストを選択せずにテキストフィールドをクリックします。選択なしでテキストをクリックする場合、
sharpness
set to 400
, 0
, and -400
.
It assumes that you have a font
embedded in the Library with the linkage identifier set to "Times-12"
.
To embed the font, follow these steps:
テキストフィールドに関連付けられているスタイルシートは、いつでも変更することができます。使用されているスタイルシートを変更すると、テキストフィールドは新しいスタイルシートを使用して再描画されます。スタイルシートを
注意:スタイルシートが削除されると、
HTML フォーム内のテキストを取得するには、
比較するために、
thickness
of -200 to one
and 200 to the other. It assumes that you have a font
embedded in the Library with the linkage identifier set to "Times-12"
.
To embed the font, follow these steps:
TextFormat オブジェクトのプロパティを設定する前に、コンストラクター
各プロパティのデフォルトのフォーマットについては、各プロパティの説明でも説明します。
ユーザーが
Verdana や、Courier New などの等幅フォントなど、特定のフォントではカーニングはサポートされていません。
デフォルト値
注意:ハイパーリンクを機能させるには、テキストフォーマットが割り当てられたテキストを
フォントデータがファイルに含まれないので、デバイスフォントを使用するとムービーサイズが小さくなります。アンチエイリアス処理されたテキストは小さなサイズではぼやける場合があるため、デバイスフォントはテキストを小さなポイントサイズで表示するのに適しています。デバイスフォントは、スクロールテキストなどの大きなテキストブロックにも適しています。
デバイスフォントを使用するテキストフィールドは、システムにインストールされているフォントを使用してレンダリングされるので、異なるシステムおよびプラットフォームでは同じように表示されない場合があります。 同じ理由から、デバイスフォントはアンチエイリアス処理されず、大きなポイントサイズではぎざぎざが表示される場合があります。
埋め込み CFF フォントを使用するテキストは、常に選択されたフォントで表示されます。そのフォントが再生システムにインストールされているかどうかは関係ありません。また、埋め込みフォントを使用するテキストフィールドは、Flash Player によって常にアンチエイリアス処理(スムージング)されます。
埋め込み CFF フォントの 1 つの欠点は、SWF ファイルのサイズが大きくなることです。ただし、通常、埋め込み CFF フォントのサイズは通常のフォントよりも 20% ~ 30% 小さくなります。
埋め込みフォントを使用するテキストフィールドは、常に選択されたフォントで表示されます。そのフォントが再生システムにインストールされているかどうかは関係ありません。また、埋め込みフォントを使用するテキストフィールドは常にアンチエイリアス処理(スムージング)されます。
埋め込みフォントの 1 つの欠点は、SWF ファイルのサイズが大きくなることです。
次に、
テキストフィールドで高度なアンチエイリアスを設定するには、TextField インスタンスの
高度なアンチエイリアスには、線の太さとエッジのシャープネスの両方を連続的に変調する CSM(Continuous Stroke Modulation)機能が用意されています。高度な機能として、
注意:
"myArial"
.
To embed the font, follow these steps:
高度なアンチエイリアスは、ADF(Adaptively sampled Distance Fields)を使用して、字形を決定するアウトラインを表します。Flash Player では、外部カットオフ値(
外部カットオフ値と内部カットオフ値を調整すると、線の太さとエッジのシャープネスに影響します。これら 2 つのパラメーター間の間隔は、標準のアンチエイリアスメソッドのフィルター半径の 2 倍に相当します。間隔が狭ければ、エッジがシャープになり、間隔が広ければ、エッジがぼやけて、フィルターの適用度が高い状態になります。間隔が 0 の場合、結果の密度イメージは 2 層のビットマップとなります。間隔が非常に広ければ、結果の密度イメージのエッジは水彩画のようになります。
通常、ユーザーは、小さなポイントサイズではシャープでコントラストのはっきりしたエッジを、アニメーションテキストや大きなポイントサイズではぼやけたエッジを好みます。
通常、外部カットオフは負の値、内部カットオフは正の値で、中間点は 0 の近辺になります。これらのパラメーターを調整して、中間点を負の無限大に向かってシフトすると、線の太さが増します。中間点を正の無限大に向かってシフトすると、線の太さは減ります。外部カットオフ値が常に内部カットオフ値以下になるようにする必要があります。
maxLevel
value for the entire
SWF file, and then displays a text field with the value set. For the
text in this example to display correctly, there must be a font symbol available with
a linkage identifier of "CustomFont"
.
高度なアンチエイリアスは、ADF を使用して、字形を決定するアウトラインを表します。品質が高くなるほど、ADF 構造用により多くのキャッシュ領域が必要となります。値
テキストの行を含むテキストフィールドに関する測定(例えば、次の図の「テキストフィールドの高さ」の測定など)については、flash.text.TextField を参照してください。
次の図に、テキストフィールドおよびフィールドに含まれるテキストの行のポイントと測定を示します。
各プロパティについては、このクラスの概要にある図を参照してください。
スタイルを TextField オブジェクトに適用するには、StyleSheet オブジェクトを TextField オブジェクトの
注意:スタイルシートを使用するテキストフィールドは編集できません。つまり、
Flash Player は、オリジナルの CSS1 仕様(
ネイティブ CSS 解析機能を拡張するには、StyleSheet クラスのサブクラスを作成して、このメソッドをオーバーライドします。
コンストラクターで、複数行テキストフィールドが作成され、そのコンテンツが HTML フォーマットのストリングに設定されます。(CSS スタイルが適用されるまで、HTML ヘッダーと span タグはレンダリングされません。) CSS ファイルの場所を識別するために、
ユーザーがテキストフィールドをクリックすると、
この例で使用できる CSS ファイルのコンテンツの例を以下に示します。この例を実行する前に、テキストファイルを作成し、次の CSS コンテンツをこのファイルにコピーし、ファイル名を
p { font-family: Times New Roman, Times, _serif; font-size: 14; font-Style: italic; margin-left: 10; } h1 { font-family: Arial, Helvetica, _sans; font-size: 20; font-weight: bold; } .bluetext { color: #0000CC; }
emphasized
to the
StyleSheet myStyleSheet
. The style includes two style properties: color
and fontWeight
. The style object is defined with the {}
operator.
myStyleSheet.setStyle("emphasized", {color:'#000000',fontWeight:'bold'});
You could also create a style object using an instance of the Object class, and
then pass that object (styleObj
) as
the style
parameter, as the next example shows:
The following information appears in the Output panel:The following information writes to the log file:
emphasized
fontWeight: bold
color: #000000
Note: Because Flash Player creates a copy of the style object
you pass to setStyle()
, the delete styleObj
command in the
code example reduces memory usage by deleting the original style object passed to
setStyle()
.
このメソッドに渡したスタイルオブジェクトのコピーが作成されます。
サポートされるスタイルの一覧については、StyleSheet クラスの説明に記載されている表を参照してください。
通常、CSS スタイルは HTML コンテンツをフォーマットするために使用されます。ただし、StyleSheet オブジェクトの
TextSnapshot オブジェクトはコンストラクターを使用して作成するのではなく、
すべての文字を検索するには、
注意:大きな範囲のテキストに対して
すべての文字を取得するには、
このメソッドは、文字メトリック情報を含むフォントを使用する場合にのみ正常に機能します。ただし、デフォルトでは、Flash オーサリングツールの静止テキストフィールドにこの情報は含まれません。
このメソッドは、文字メトリック情報を含むフォントを使用する場合にのみ正常に機能します。ただし、デフォルトでは、Flash オーサリングツールの静止テキストフィールドにこの情報は含まれません。したがって、インデックス値の代わりに
すべての文字を選択または選択解除するには、
文字の選択状態は個々にマーキングされるため、このメソッドを何回か呼び出すことで、複数の文字を選択できます。つまり、このメソッドを使用しても、既にこのメソッドで選択されている他の文字については選択解除されません。
選択範囲を示す色付きの矩形は、文字メトリック情報を含むフォントに対してのみ表示されます。デフォルトでは、静止テキストフィールドにはこの情報は含まれません。これが原因で、選択されたテキストが画面に選択状態で表示されない場合があります。