TextArea コンポーネントの使用

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 イベントハンドラーをセットアップします。このイベントハンドラーは、インターフェイスの別の場所にフォーカスを移す前に、ユーザーがテキスト領域に入力したかどうかを確認します。

  1. 新しい Flash ドキュメント (ActionScript 3.0) を作成します。

  2. TextArea コンポーネントをコンポーネントパネルからステージまでドラッグし、インスタンス名を aTa にします。パラメーターは、デフォルト設定のままにします。

  3. 2 番目の TextArea コンポーネントをコンポーネントパネルからステージまでドラッグし、1 番目のコンポーネントの下に配置して、インスタンス名を bTa にします。パラメーターは、デフォルト設定のままにします。

  4. アクションパネルを開いて、メインタイムライン内でフレーム 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 キーを押して次のフィールドに移動できないようにします。この動作は、デフォルトのビヘイビアーを回避することで実行されます。

  5. 制御/ムービープレビューを選択します。

    テキストを入力せずに Tab キーを押して 2 番目のテキスト領域にフォーカスを移動した場合は、エラーメッセージが表示され、1 番目のテキスト領域にフォーカスが戻ります。 1 番目のテキスト領域にテキストを入力すると、そのテキストが複製されて 2 番目のテキスト領域に表示されます。

ActionScript を使用した TextArea インスタンスの作成

次の例では、ActionScript を使用して TextArea コンポーネントを作成します。 空白を圧縮するために condenseWhite プロパティを true に設定し、HTML テキストフォーマットの属性を使用するために htmlText プロパティにテキストを割り当てます。

  1. 新しい Flash (ActionScript 3.0) ドキュメントを作成します。

  2. TextArea コンポーネントをライブラリパネルにドラッグします。

  3. アクションパネルを開いて、メインタイムライン内でフレーム 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 インスタンスをステージに追加します。

  4. 制御/ムービープレビューを選択します。