TextArea コンポーネントは、ネイティブの ActionScript TextField オブジェクトのラッパーです。TextArea コンポーネントは、テキストの表示に使用できます。また、
editable
プロパティが
true
の場合は、テキスト入力の編集や取得にも使用できます。このコンポーネントでは、複数行のテキストを表示または取得できます。
wordWrap
プロパティが
true
に設定されていると、行数の多いテキストが折り返されます。
restrict
プロパティを使用すると、ユーザーが入力できる文字数を制限できます。また、
maxChars
を使用すると、ユーザーが入力できる最大文字数を指定できます。テキストが、テキスト領域の水平方向または垂直方向の範囲を超えた場合は、水平スクロールバーまたは垂直スクロールバーが自動的に表示されます。ただし、テキスト領域に関連付けられたプロパティである
horizontalScrollPolicy
および
verticalScrollPolicy
が
off
に設定されている場合は表示されません。
TextArea コンポーネントは、複数行のテキストフィールドが必要な場所ならどこでも使用できます。 例えば、TextArea コンポーネントをフォームのコメントフィールドに使用することが考えられます。 また、ユーザーが Tab キーでフィールドの外に移動したときに、フィールドが空かどうかをチェックするリスナをセットアップすることができます。 このリスナを使うと、フィールドにコメントを入力する必要があることをユーザーに知らせるエラーメッセージを表示できます。
単一行のテキストフィールドが必要な場合は、TextInput コンポーネントを使用します。
setStyle()
メソッドを使用して
textFormat
スタイルを設定すると、TextArea インスタンスに表示するテキストのスタイルを変更できます。ActionScript で
htmlText
プロパティを使用すると、TextArea コンポーネントを HTML でフォーマットすることもできます。また、
displayAsPassword
プロパティを
true
に設定すると、テキストをアスタリスクでマスクすることもできます。
condenseWhite
プロパティを
true
に設定すると、スペースや改行などによる余分な空白が新しいテキストから削除されます。これは、既にコントロールに入力済みのテキストでは無効です。
TextArea コンポーネントのユーザー操作
アプリケーション内で TextArea コンポーネントを有効または無効にすることができます。 無効状態のときは、マウスおよびキーボードからの入力を受け付けることができません。 有効状態のときは、ActionScript TextField オブジェクトと同じフォーカス、選択、およびナビゲーションの規則に従います。 フォーカスを取得している TextArea インスタンスでは、次のキーを使用した操作が可能です。
キー
|
説明
|
矢印キー
|
テキストが編集可能な場合は、挿入ポインターをテキスト内で上、下、左、右に移動します。
|
Page Down
|
テキストが編集可能な場合は、挿入ポインターをテキストの末尾に移動します。
|
Page Up
|
テキストが編集可能な場合は、挿入ポインターをテキストの先頭に移動します。
|
Shift+Tab
|
タブループ内で、フォーカスを前のオブジェクトに移動します。
|
Tab
|
タブループ内で、フォーカスを次のオブジェクトに移動します。
|
フォーカスの制御について詳しくは、「
Adobe Flash Professional CS5 用
ActionScript 3.0 リファレンスガイド
」の FocusManager クラスおよび
FocusManager の操作
を参照してください。
TextArea コンポーネントのパラメーター
プロパティインスペクターまたはコンポーネントインスペクターで、TextArea コンポーネントの各インスタンスに設定できるオーサリングパラメーターは、
condenseWhite
、
editable
、
hortizontalScrollPolicy
、
maxChars
、
restrict
、
text
、
verticalScrollPolicy
および
wordwrap
です。これらの各パラメーターには、対応する同名の ActionScript プロパティがあります。これらのパラメーターに設定できる値については、「
Adobe Flash Professional CS5 用
ActionScript 3.0 リファレンスガイド
」の TextArea クラスを参照してください。
各 TextArea インスタンスのライブプレビューには、オーサリング時にプロパティインスペクターまたはコンポーネントインスペクターでパラメーターに加えた変更が反映されます。 スクロールバーが必要な場合は、ライブプレビューに表示されますが、このスクロールバーは機能しません。 ライブプレビューではテキストを選択できず、ステージ上のコンポーネントインスタンスにテキストを入力することはできません。
ActionScript を記述すれば、TextArea コンポーネントのプロパティ、メソッド、イベントを使用して、これらのオプションやその他のオプションを制御できます。 詳しくは、「
Adobe Flash Professional CS5 用
ActionScript 3.0 リファレンスガイド
」の TextArea クラスを参照してください。
TextArea コンポーネントを使用したアプリケーションの作成
次の手順は、オーサリング時に TextArea コンポーネントをアプリケーションに追加する方法を示しています。 この例では、TextArea インスタンスの
focusOut
イベントハンドラーをセットアップします。このイベントハンドラーは、インターフェイスの別の場所にフォーカスを移す前に、ユーザーがテキスト領域に入力したかどうかを確認します。
-
新しい Flash ドキュメント (ActionScript 3.0) を作成します。
-
TextArea コンポーネントをコンポーネントパネルからステージまでドラッグし、インスタンス名を
aTa
にします。パラメーターは、デフォルト設定のままにします。
-
2 番目の TextArea コンポーネントをコンポーネントパネルからステージまでドラッグし、1 番目のコンポーネントの下に配置して、インスタンス名を
bTa
にします。パラメーターは、デフォルト設定のままにします。
-
アクションパネルを開いて、メインタイムライン内でフレーム 1 を選択し、次の ActionScript コードを入力します。
import flash.events.FocusEvent;
aTa.restrict = "a-z,'\" \"";
aTa.addEventListener(Event.CHANGE,changeHandler);
aTa.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, k_m_fHandler);
aTa.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, k_m_fHandler);
function changeHandler(ch_evt:Event):void {
bTa.text = aTa.text;
}
function k_m_fHandler(kmf_event:FocusEvent):void {
kmf_event.preventDefault();
}
この例では、
aTa
テキスト領域に入力できる文字を、小文字、コンマ、アポストロフィおよびスペースに制限しています。また、
aTa
テキスト領域の
change
、
KEY_FOCUS_CHANGE
および
MOUSE_FOCUS_CHANGE
の各イベントのイベント ハンドラーも設定します。
changeHandler()
関数によって、各
change
イベントの発生時に
aTa.text
を
bTa.text
に割り当てることで、
aTa
テキスト領域に入力するテキストが
bTa
テキスト領域に自動的に表示されます。
KEY_FOCUS_CHANGE
イベントと
MOUSE_FOCUS_CHANGE
イベントの
k_m_fHandler()
関数は、ユーザーがテキストを入力しないまま Tab キーを押して次のフィールドに移動できないようにします。この動作は、デフォルトのビヘイビアーを回避することで実行されます。
-
制御/ムービープレビューを選択します。
テキストを入力せずに Tab キーを押して 2 番目のテキスト領域にフォーカスを移動した場合は、エラーメッセージが表示され、1 番目のテキスト領域にフォーカスが戻ります。 1 番目のテキスト領域にテキストを入力すると、そのテキストが複製されて 2 番目のテキスト領域に表示されます。
ActionScript を使用した TextArea インスタンスの作成
次の例では、ActionScript を使用して TextArea コンポーネントを作成します。 空白を圧縮するために
condenseWhite
プロパティを
true
に設定し、HTML テキストフォーマットの属性を使用するために
htmlText
プロパティにテキストを割り当てます。
-
新しい Flash (ActionScript 3.0) ドキュメントを作成します。
-
TextArea コンポーネントをライブラリパネルにドラッグします。
-
アクションパネルを開いて、メインタイムライン内でフレーム 1 を選択し、次の ActionScript コードを入力します。
import fl.controls.TextArea;
var aTa:TextArea = new TextArea();
aTa.move(100,100);
aTa.setSize(200, 200);
aTa.condenseWhite = true;
aTa.htmlText = '<b>Lorem ipsum dolor</b> sit amet, consectetuer adipiscing elit. <u>Vivamus quis nisl vel tortor nonummy vulputate.</u> Quisque sit amet eros sed purus euismod tempor. Morbi tempor. <font color="#FF0000">Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos.</font> Curabitur diam. Suspendisse at purus in ipsum volutpat viverra. Nulla pellentesque libero id libero.';
addChild(aTa);
この例では、
htmlText
プロパティを使用してテキストブロックに HTML の bold 属性と underline 属性を適用し、
a_ta
テキスト領域にそのテキストを表示します。また、
condenseWhite
プロパティを
true
に設定してテキストブロック内の空白を圧縮します。
setSize()
メソッドでテキスト領域の高さと幅を設定し、
move()
メソッドでその位置を設定します。
addChild()
メソッドで TextArea インスタンスをステージに追加します。
-
制御/ムービープレビューを選択します。
|
|
|