HTML 形式のテキストストリングを設定または取得するには、htmlText プロパティを使用します。標準の HTML には含まれていない 1 つのタグ textFormat を使用することもできます。サポートされているタグと属性の詳細については、HTML テキストでのタグの使用を参照してください。
Flex スタイルを使用してテキストフォーマットを指定することもできます。スタイルを使用してフォントの特性やテキストの太さなどの基本スタイルを設定し、<font> タグなどのタグを使用して、テキストセクション内で基本スタイルをオーバーライドできます。次の例では、<mx:Text> タグスタイルは青色、イタリック、14 ポイントのテキストを指定します。<mx:htmlText> タグには、カラーやポイントサイズをオーバーライドする HTML タグが含まれています。
<?xml version="1.0"?>
<!-- textcontrols/HTMLTags.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="450"
backgroundGradientColors="[#FFFFFF, #FFFFFF]">
<mx:Text width="100%" color="blue" fontStyle="italic" fontSize="14">
<mx:htmlText>
<![CDATA[This is 14 point blue italic text.<br><b><font color="#000000" size="10">This text is 10 point black, italic, and bold.</font></b>]]>
</mx:htmlText>
</mx:Text>
</mx:Application>
前の例で実行する SWF ファイルは以下のとおりです。
このコードの出力は、次のようになります。
テキスト内で HTML タグが検出されたときに Flex コンパイラがエラーを生成しないようにするには、次のいずれかの方法を使用します。
文字エンティティの方法には多くの制限があるため、単純な HTML マークアップ以外のすべての HTML マークアップには、CDATA セクションを使用することをお勧めしています。
例えば以下のストリングを表示する場合は、次のようにします。
小なり記号(<)およびボールドテキスト。
CDATA セクションを使用しない場合は、次のテキストを使用する必要があります。
A less than character &c#060; and <b>bold text</b>.
CDATA セクションで、次のテキストを使用します。
A less than character < and <b>bold text</b>.
テキストコントロールに HTML テキストを指定する場合、次の規則が適用されます。
次の例では、テキストを指定するために MXML および ActionScript を使用している、いくつかの簡単な HTML フォーマット済みテキストを示しています。
<?xml version="1.0"?>
<!-- textcontrols/HTMLFormattedText.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="500">
<mx:Script><![CDATA[
//The following is on one line.
[Bindable]
public var myHtmlText:String="This string contains <b>less than </b>, <, <b>greater than</b>, >, <b>ampersand</b>, &, and <b>double quotation mark</b>, ", characters.";
]]></mx:Script>
<mx:Text id="htmltext2" width="450" htmlText="{myHtmlText}" />
<mx:Text width="450">
<mx:htmlText>
<!-- The following is on one line. Line breaks would appear in the output. -->
<![CDATA[
This string contains <b>less than</b>, <, <b>greater than </b>, >, <b>ampersand</b>, &, and <b>double quotation mark</b>,", characters.
]]>
</mx:htmlText>
</mx:Text>
</mx:Application>
前の例で実行する SWF ファイルは以下のとおりです。
各テキストコントロールには、次のテキストが表示されます。
This string contains less than, <, greater than, >, ampersand, &, and double quotation mark, " characters.
HTML テキストでの特殊文字のエスケープに適用される規則は、CDATA セクションと標準テキストでは異なります。
CDATA セクション
htmlText ストリングを指定する場合、次の規則が適用されます。
次のコード例では、htmlText プロパティを使用してフォーマット済みテキストを表示します。
<?xml version="1.0"?>
<!-- textcontrols/HTMLTags2.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="500">
<mx:Text width="100%">
<mx:htmlText><![CDATA[<p>This string contains a <b>less than</b>, <.
</p><p>This text is in a new paragraph.<br>This is a new line.</p>]]>
</mx:htmlText>
</mx:Text>
</mx:Application>
前の例で実行する SWF ファイルは以下のとおりです。
このコードは、次のテキストを表示します。
This string contains a less than, <. This text is in a new paragraph. This is a new line.
標準テキスト
次の規則が適用されます。
htmlText プロパティを使用するときは、Flash Player および AIR でサポートされている HTML のサブセットを使用します。このサブセットでは、以下のタグがサポートされます。
アンカー(<a>)タグは、ハイパーリンクを作成し、次の属性をサポートします。
href ブラウザにロードするページの URL を指定します。URL は、ページをロードしている SWF ファイルの場所に対して絶対的でも相対的でもかまいません。
target ページをロードする先のターゲットウィンドウの名前を指定します。
例えば、次の HTML コードは、Adobe の Web サイトへの「Go home」というリンクを作成するものです。
<a href='http://www.adobe.com' target='_blank'>Go Home</a>
また、スタイルシートを使用すると、アンカータグに a:link、a:hover および a:active の各スタイルを定義できます。
<a> タグでは、リンクテキストは青になりません。テキストのフォーマットを変更するには、フォーマットタグを適用する必要があります。また、スタイルシートを使用すると、アンカータグに a:link、a:hover および a:active の各スタイルを定義できます。
Label、Text、および TextArea コントロールは、ユーザーが htmlText プロパティ内のハイパーリンクを選択したときに link イベントを送出できます。link イベントを生成するには、次の例に示すように、ハイパーリンクのリンク先の前に event: を付けます。
<?xml version="1.0"?>
<!-- textcontrols/LabelControlLinkEvent.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
borderStyle="solid"
backgroundGradientColors="[#FFFFFF, #FFFFFF]">
<mx:Script>
<![CDATA[
import flash.events.TextEvent;
public function linkHandler(event:TextEvent):void {
myTA.text="link occured.";
// Open the link in a new window.
navigateToURL(new URLRequest(event.text), '_blank')
}
]]>
</mx:Script>
<mx:Label selectable="true" link="linkHandler(event);">
<mx:htmlText><![CDATA[<a href='event:http://www.adobe.com'>Adobe</a>]]></mx:htmlText>
</mx:Label>
<mx:TextArea id="myTA"/>
</mx:Application>
前の例で実行する SWF ファイルは以下のとおりです。
link イベントを生成するには、Label コントロールの selectable プロパティが true に設定されている必要があります。
link イベントを使用すると、イベントが生成され、ハイパーリンクのリンク先の event: に続くテキストが、イベントオブジェクトの text プロパティに含まれます。ただし、ハイパーリンクは自動的には実行されません。イベントハンドラ内から手動でハイパーリンクを実行する必要があります。これにより、アプリケーション内でハイパーリンクを変更することができ、場合によってはハイパーリンクの実行を禁止することもできます。
ボールド(<b>)タグは、テキストをボールドとしてレンダリングします。埋め込みフォントを使用する場合、ボールド体が使用可能になっていないとテキストは表示されません。エンドユーザーのローカルシステムに存在すると予想されるフォントを使用する場合、そのフォントが存在しなければ、システムにより近似値のボールドフォントが使用されるか、ボールドの代わりに標準フォントが使用されることがあります。いずれの場合でも、ボールドタグ内のテキストは表示されます。
次のコードの一部では、bold という語にボールド体が適用されます。
This word is <b>bold</b>.
fontWeight スタイルを使用してコントロール内のすべてのテキストに設定したボールドフォーマットを、</b> 終了タグでオーバーライドすることはできません。
ブレーク(<br>)タグは、テキスト内に改行を作成します。このタグは、Label または TextInput コントロールには影響しません。
次のコードの一部では、line という語句の後で改行します。
The next sentence is on a new line.<br>Hello there.
フォント(<font>)タグは、カラー、フォント、サイズなどのフォント特性を指定します。
フォントタグは、次の属性をサポートします。
color テキストカラーを指定します。16 進数のカラー値(#FFFFFF)を使用してください。その他の形式はサポートされていません。
face 使用するフォントの名前を指定します。カンマで区切られたフォント名の一覧を指定することもできます。その場合、Flash Player および AIR は最初に利用可能なフォントを選択します。指定したフォントがシステムにインストールされていないか、または SWF ファイルに埋め込まれていない場合、Flash Player および AIR は代替フォントを選択します。次の例は、フォントを設定する方法を示しています。
size フォントのサイズをポイント単位で指定します。+2 または -4 など、相対サイズを使用することもできます。
次の例では、<font> tag: を使用します。
<?xml version="1.0"?>
<!-- textcontrols/FontTag.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundGradientColors="[#FFFFFF, #FFFFFF]">
<mx:TextArea height="100" width="250">
<mx:htmlText>
<![CDATA[
You can vary the <font size='20'>font size</font>,<br><font color="#0000FF">color</font>,<br><font face="CourierNew, Courier, Typewriter">face</font>, or<br><font size="18" color="#FF00FF"face="Times, Times New Roman, _serif">any combination of the three.</font>
]]>
</mx:htmlText>
</mx:TextArea>
</mx:Application>
前の例で実行する SWF ファイルは以下のとおりです。
このコードの出力は、次のようになります。
イメージ(<img>)タグは、外部の JPEG、GIF、PNG および SWF ファイルをテキストフィールドに埋め込みます。テキストは、テキストフィールドに埋め込んだイメージの周囲に自動的に配置されます。このタグがサポートされているのは、複数行でテキストを折り返す、動的テキストフィールドおよび入力テキストフィールドのみです。
デフォルトでは、Flash はテキストフィールドに埋め込まれたメディアをフルサイズで表示します。埋め込みメディアのサイズを指定するには、<img> タグの height および width 属性を使用します。
一般的に、テキストフィールドに埋め込まれたイメージは、<img> タグの次の行に表示されます。ただし、<img> タグがテキストフィールドの最初の文字の場合、イメージはテキストフィールドの最初の行に表示されます。
<img> タグには、イメージファイルへのパスを指定するための、1 つの必須の属性 src があります。その他の属性は、すべてオプションです。
<img> タグは、次の属性をサポートしています。
src GIF、JPEG、PNG、または SWF ファイルへの URL を指定します。この属性は必須です。その他の属性はすべてオプションです。外部ファイルは、完全にダウンロードされるまで表示されません。
align テキストフィールド内の埋め込みイメージの水平方向の整列を指定します。有効な値は、left および right です。デフォルト値は left です。
height イメージの高さをピクセルで指定します。
hspace イメージの周りのテキストが表示されない領域の、水平方向の間隔を指定します。デフォルト値は 8 です。
id 読み込まれたイメージの識別子を指定します。これは、ActionScript を使用して、埋め込みコンテンツを制御するときに役立ちます。
vspace イメージの周りのテキストが表示されない領域の、垂直方向の間隔を指定します。
width イメージの幅をピクセルで指定します。デフォルト値は 8 です。
次の例では、<img> タグの使用方法と、テキストがどのようにイメージの周囲に流し込まれるかを示します。
<?xml version="1.0"?>
<!-- textcontrols/ImgTag.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundGradientColors="[#FFFFFF, #FFFFFF]" width="300" height="300">
<mx:Text height="100%" width="100%">
<mx:htmlText>
<![CDATA[
<p>You can include an image in your HTML text with the <img> tag.</p><p><img src='../assets/butterfly.gif' width='30' height='30' align='left' hspace='10' vspace='10'>Here is text that follows the image. I'm extending the text by lengthening this sentence until it's long enough to show wrapping around the bottom of the image.</p>
]]>
</mx:htmlText>
</mx:Text>
</mx:Application>
前の例で実行する SWF ファイルは以下のとおりです。
埋め込みイメージからハイパーリンクを作成するには、次の例に示すように、<a> タグ内に <img> タグを埋め込みます。
<?xml version="1.0"?>
<!-- textcontrols/ImgTagWithHyperlink.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="500" height="500" borderStyle="solid">
<mx:TextArea width="100%" height="100%">
<mx:htmlText>
<![CDATA[
<a href='http://www.adobe.com'><img src='../assets/butterfly.gif'/></a>Click the image to go to the Adobe home page.
]]>
</mx:htmlText>
</mx:TextArea>
</mx:Application>
前の例で実行する SWF ファイルは以下のとおりです。
ユーザーが <a> タグで囲まれたイメージ上にマウスポインタを移動させても、マウスポインタは、標準のハイパーリンクのようにハンドアイコンに自動的に変わることはありません。ハンドアイコンを表示するには、TextArea(または Text)コントロールに buttonMode="true" を指定します。マウスのクリックやキー入力などの双方向性は、<a> タグに囲まれた SWF ファイルに登録されません。
イタリック(<i>)タグは、指定されたテキストをイタリックフォントで表示します。埋め込みフォントを使用する場合は、イタリックフォントが利用可能である必要があります。利用できない場合、テキストは表示されません。エンドユーザーのローカルシステムに存在すると予想されるフォントを使用する場合、そのフォントが存在しなければ、システムにより近似値のイタリックフォントが使用されるか、イタリックの代わりに標準フォントが使用されることがあります。いずれの場合でも、イタリックタグ内のテキストは表示されます。
次のコードの一部では、italic という語にイタリックフォントが適用されます。
The next word is in <i>italic</i>.
fontStyle スタイルを使用してコントロール内のすべてのテキストに設定したイタリックフォーマットを、</i> 終了タグでオーバーライドすることはできません。
リスト項目(<li>)タグは、タグで囲まれたテキストの先頭に黒丸を付けて、新しい行に表示します。これ以外の種類の HTML リスト項目には使用できません。終了の </li> タグは、改行を生成します(ただし、</li><li> を入力すると単一の改行を生成します)。HTML とは異なり、<li> タグを <ul> タグで囲むことはできません。例えば、次の Flex コードでは、2 つの項目を持つ黒丸付きリストが生成されます。
<?xml version="1.0"?>
<!-- textcontrols/BulletedListExample.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="500">
<mx:Text width="100%">
<mx:htmlText >
<![CDATA[
<p>This is a bulleted list:<li>First Item</li><li>Second Item</li></p>
]]>
</mx:htmlText>
</mx:Text>
</mx:Application>
前の例で実行する SWF ファイルは以下のとおりです。
段落(<p>)タグは、新しい段落を作成します。開始タグ(<p>)では改行は強制されませんが、終了タグ(</p>)では改行が強制されます。HTML 内とは異なり、<p> タグでは段落間に強制的にダブルスペースは挿入されません。スペースは、<br> タグで生成されるものと同一です。
<p> タグは、次の属性をサポートします。
align 段落内のテキストの整列を指定します。有効な値は、left、right、center、および justify です。
次のコードの一部では、2 つの中央揃えの段落を作成します。
<p align="center">This is a first centered paragraph</p> <p align="center">This is a second centered paragraph</p>
テキストフォーマット(<textformat>)タグでは、HTML テキストフィールド内で TextFormat クラスの段落フォーマットプロパティのサブセットを使用できます。このサブセットには、行間の行送り、インデント、マージン、タブストップなどが含まれます。テキストフォーマットタグとビルトインの HTML タグを結合することができます。テキストフォーマットタグは、次の属性をサポートします。
下線(<u>)タグは、タグが付けられたテキストに下線を表示します。
次のコードの一部では、underlined という語句に下線を引きます。
The next word is <u>underlined</u>.
textDecoration スタイルを使用してコントロール内のすべてのテキストに設定した下線を、</u> 終了タグでオーバーライドすることはできません。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート