Adobe Flex 3 ヘルプ

text プロパティの使用

text プロパティを使用すると、テキストコントロールに表示するテキストストリングを指定したり、コントロール内のテキストをプレーンテキストストリングとして取得したりできます。このプロパティを設定すると、テキストストリング内のすべての HTML タグは、リテラルテキストとしてコントロール内に表示されます。

text プロパティを設定するときにテキストフォーマットを指定することはできませんが、コントロール内でテキストをフォーマットすることは可能です。テキストコントロールスタイルを使用してコントロール内のすべてのテキストをフォーマットし、TextRange クラスを使用してテキスト領域をフォーマットすることができます。(TextRange クラスの使用の詳細については、テキストの選択と修正を参照してください。)

次のコード行では、text プロパティを使用してラベルテキストを指定します。

<mx:Label text="This is a simple text label"/>

引用符、大なり記号、小なり記号、アポストロフィなどの特殊文字を指定する方法は、それらの特殊記号を MXML タグで使用するか ActionScript タグで使用するかによって異なります。また、テキストを直接指定するか、CDATA セクションにテキストをラップするかによっても異なります。

注意: ストリングを使用して直接 MXML で text プロパティの値を指定すると、空白文字は畳んで表示されます。text プロパティの値を ActionScript で指定した場合、空白文字は畳んで表示されません。

text プロパティでの特殊文字の指定

次の規則は、テキストコントロール MXML タグの text プロパティに特殊文字を含める方法を示しています。つまり、text="the text" などのプロパティ割り当て、または <mx:text> サブタグの本体のいずれかに指定します。

標準テキストの使用 

次のルールは、CDATA セクションを使用しない場合の特殊文字の使用方法を決定します。



  • 左の山カッコ(<)、右の山カッコ(>)、アンパサンド(&)などの特殊文字を使用するには、それぞれ対応する &lt;&gt;&amp; の XML 文字エンティティを挿入します。また、二重引用符(")、単一引用符(')としてそれぞれ &quot;&apos; を使用できます。円記号(\)に対する &#165 などの番号文字参照も使用できます。その他の名前が付けられた文字エンティティは使用しないでください。これらは、Flex ではリテラルテキストとして扱われます。
  • ストリング内のプロパティテキストストリングを囲んでいる文字は使用できません。ストリングを二重引用符で囲む場合、ストリング内のすべての二重引用符に対して、エスケープシーケンス \" を使用します。ストリングを単一引用符で囲む場合は、ストリング内のすべての単一引用符に対して、エスケープシーケンス \' を使用します。二重引用符で囲まれたストリング内での単一引用符の使用、および単一引用符で囲まれたストリング内での二重引用符の使用は可能です。
  • Flex のテキストコントロールでは、text プロパティ内の \t や \n などのエスケープ文字は無視されます。これらが無視されるかまたはスペース、タブ、改行に変換されるかは、プロパティ割り当てと <mx:text> サブタグのどちらを指定したかによって決まります。改行を含めるには、テキストを CDATA セクション内に入力してください。テキストコントロールの text="string" 属性指定では、例えば改行文字を &#013;、タブ文字を &#009; というように、数値文字エンティティとして指定できますが、<mx:text> サブタグではそのように指定することはできません。

次のコード例では、標準テキストに text プロパティを使用します。

<?xml version="1.0"?>
<!-- textcontrols/StandardText.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" height="400">

  <mx:Text width="400" text="This string contains a less than, &lt;, 
     greater than, &gt;, ampersand, &amp;, apostrophe, ', and
     quotation mark &quot;."/>

  <mx:Text width="400" text='This string contains a less than, &lt;, 
     greater than, &gt;, ampersand, &amp;, apostrophe, &apos;, and
     quotation mark, ".'/>

  <mx:Text width="400">
     <mx:text>
        This string contains a less than, &lt;, greater than, 
        &gt;, ampersand, &amp;, apostrophe, ', and quotation mark, ".
     </mx:text>
  </mx:Text>

</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

結果として生成されるアプリケーションには、ほぼ同一の 3 つのテキストコントロールが含まれます。各コントロールには、次のテキストが含まれます。ただし最初の 2 つのコントロールでは、テキスト内のすべてのタブがスペースに変換されます。

This string contains a less than, <, greater than, >, ampersand, &,apostrophe, ', and quotation mark, ".

CDATA セクション 

CDATA タグ内でテキストを折り返す場合、次の規則が適用されます。



  • CDATA セクションは、テキストコントロールの開始タグのプロパティ割り当てステートメントでは使用できません。プロパティは、<mx:text> 子タグで定義する必要があります。
  • CDATA セクション内のテキストは、空白文字を含め、すべて入力されたとおりに表示されます。特殊文字には " や < などのリテラル文字を使用してください。また標準の改行文字とタブ文字を使用してください。&gt; などの文字エンティティ、および \n などのバックスラッシュスタイルエスケープ文字は、リテラルテキストとして表示されます。

次のコード例は、CDATA セクションの規則に従ったものです。<mx:text> タグ内の 2 行目および 3 行目のテキストはインデントされません。先行するタブやスペース文字があれば、表示テキスト内に表示されるからです。

<?xml version="1.0"?>
<!-- textcontrols/TextCDATA.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="500">
  <mx:Text width="100%">
     <mx:text>
        <![CDATA[This string contains a less than, <, greater than, >,
ampersand, &, apostrophe, ', return,
tab. and quotation mark, ".]]>
     </mx:text>
  </mx:Text>
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

表示テキストは、次のように 3 行に表示されます。

This string contains a less than, <, greater than, >,
ampersand, &, apostrophe, ', return,
tab. and quotation mark, ". 

ActionScript での特殊文字の指定

次の規則は、初期化関数などで ActionScript を使用してコントロールの text プロパティ値を指定する場合や、プロパティの設定で使用する変数にストリング値を割り当てる場合に、テキストコントロールに特殊文字を挿入する方法を指定します。

  • テキストストリングを囲んでいる文字を、ストリング内で使用することはできません。ストリングを二重引用符(")で囲む場合は、ストリング内のすべての二重引用符に対してエスケープシーケンス(\")を使用します。ストリングを単一引用符(')で囲む場合は、ストリング内のすべての単一引用符に対してエスケープシーケンス(\')を使用します。
  • 特殊文字には、バックスラッシュエスケープ文字を使用します。例えば、タブ文字に対して \t、改行文字の組み合わせに対して \n または \r などを使用します。二重引用符にはエスケープ文字 \"、単一引用符には \' を使用できます。
  • 標準テキスト(CDATA セクションではない)で、左の山カッコ(<)、右の山カッコ(>)、アンパサンド(&)の特殊文字を追加するには、それぞれ &lt;&gt;&amp; に相当する XML 文字エンティティを挿入します。また、二重引用符、単一引用符としてそれぞれ &quot;&apos; を使用できます。円記号(\)に対する &#165; などの番号文字参照も使用できます。その他の名前が付けられた文字エンティティは使用しないでください。これらは、Flex ではリテラルテキストとして扱われます。
  • CDATA セクションのみには、&lt; や &#165 などの文字エンティティまたは参照は使用しないでください。それらは、Flex ではリテラルテキストとして扱われます。代わりに、< などの実際の文字を使用してください。

次の例では、初期化関数を使用して、text プロパティに特殊文字を含むストリングを設定します。

<?xml version="1.0"?>
<!-- textcontrols/InitText.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="initText()">
  <mx:Script>
     public function initText():void {
        //The following is on one line.
        myText.text="This string contains a return, \n, tab, \t, and quotation mark, \". This string also contains less than, &lt;, greater than, &gt;, ampersand, &amp;, and apostrophe, ', characters.";
     }
  </mx:Script>
  <mx:Text width="450" id="myText" initialize="initText();"/>
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

次の例では、<mx:Script> タグと CDATA セクション内の変数を使用して、text プロパティを設定します。

<?xml version="1.0"?>
<!-- textcontrols/VarText.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
  <mx:Script>
  <![CDATA[
     [Bindable]
        //The following is on one line.
     public var myText:String ="This string contains a return, \n, tab, \t, and quotation mark, \". This string also contains less than, <, greater than, <, ampersand, <;, and apostrophe, ', characters.";
  ]]>
  </mx:Script>
  <mx:Text width="450" text="{myText}"/>
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

それぞれの例の表示テキストは、3 行に表示されます。最初の行は \n 文字により指定された改行で終わります。残りのテキストは、1 行に収めるには長すぎるため、3 行目に折り返されます(次の出力ではわかりにくいかもしれませんが、タブ文字が正しい位置に挿入されています。)

This string contains a return, 
, tab,     , and quotation mark, ". This string also contains less than, <, 
greater than, >, ampersand, &, and apostrophe, ', characters.

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート