TextField クラス

 ダイナミックテキストフィールド、テキスト入力フィールド(静止テキストは含まれない)はTextField クラスのインスタンスです。皆さんも今までダイナミックテキスト、テキスト入力をFlashのツールで作成してきたと思うので馴染み深いと思いますが、ここで説明するTextField クラスのメソッド、プロパティ、イベントハンドラ等を覚える事によりテキストフィールドの持っている力を発揮させる事ができます。


TextFeild オブジェクトの作成方法

 TextFieldオブジェクトを作成する為にはコンポーネントパネルからドラック&ドロップで配置するか、createTextField()メソッドを使用します。

createTextField(インスタンス名,深度,x,y,width,height)
 下記のスクリプトではボーダーありのテキストフィールドを作成します。インスタンス名はtext_txt、深度は1に設定し、x,y は0の地点してテキストフィールドの大きさは幅が100、高さ20に設定します。
this.createTextField("test_txt", 1, 0, 0, 100, 20);
test_txt.border = true;
 上記の様なボーダー付きのテキストフィールドが作成されました。ボーダーがないと実際にパブリッシュしても背景色と同化してしまい、今の段階では確かめる事ができません。上記のテキストフィールドは画像ではなくswfファイルです。入力しようとしても今は入力も何もできません。
 
 たぶん皆さんお気付きかと思いますが、このテキストフィールドはダイナミックテキストなのか、入力テキストなのかがわからないですね?これを明確にする為にはTextFieldクラスのtypeプロパティを使用して設定します。値はダイナミックテキストを表すdynamicと入力テキストを表すinputがあります。下記のスクリプトではinputを設定しています。この設定を行う事によりテキストフィールド内にカーソルが点灯し入力できるようになります。値を設定する時は"input"の様にダブルクォートで囲ってください。もうお分かりかと思いますが値をdynamic にするとダイナミックテキストになります。
this.createTextField("test_txt", 1, 0, 0, 100, 20);
test_txt.border = true;
test_txt.type = "input";
typeプロパティを使用して値を設定しましたから入力を受け付けるようになっています。
 
 フィールドの中にテキストを最初から表示して、そのテキストの色、入力時の色を指定してボーダーの色も変えてみます。ボーダーの色を変えるにはまず、ボーダーがあるという事を設定しなければなりません。
this.createTextField("test_txt", 1, 0, 0, 100, 20);
test_txt.border = true;
test_txt.borderColor = 0xCCCC00;
test_txt.textColor = 0x666600;
test_txt.type = "input";
 
 今度は入力させたくない文字、入力させたい文字を設定する方法を見てみましょう。半角英数文字だけ入力可能。数字だけ、特殊記号は駄目など使えると非常に便利です。外部ファイル読み込みで説明したときにも全角文字しか受け付けないように設定しています。TextFieldクラスのrestrictプロパティを使用します。
this.createTextField("test_txt", 1, 0, 0, 100, 20);
test_txt.border = true;
test_txt.type = "input";
test_txt.restrict = "A-Z";
 上記のrestrictの値はA-Zになっています。- は範囲を表します。A-Zと書けば、大文字のAからZという意味となります。つまりA-Zが入力できる文字となります。↓入力してみてください。AからZまでの文字しか受け付けません。
 A-Zの前に『^』キャレットを付けると、それ以外の文字という意味になります。つまり下記のスクリプトの様に記述すると、A-Z以外の文字は全て入力可能となります。
this.createTextField("test_txt", 1, 0, 0, 100, 20);
test_txt.border = true;
test_txt.type = "input";
test_txt.restrict = "^A-Z";

この他にもたくさんありますので、色々と試してみてください。

TextField クラスのメソッド一覧

メソッド

説明

TextField.addListener()

onChanged イベントハンドラおよび onScroller イベントハンドラが呼び出されたときに通知を受け取るオブジェクトを登録します。

TextField.getFontList()

Flash Player のホストシステム上のフォント名を配列として返します。

TextField.getDepth()

テキストフィールドの深度を返します。

TextField.getNewTextFormat()

新しく挿入したテキストに割り当てるデフォルトのテキストフォーマットを取得します。

TextField.getTextFormat()

テキストフィールド内の一部またはすべてのテキストに関するフォーマット情報を含む TextFormat オブジェクトを返します。

TextField.removeListener()

リスナーオブジェクトを削除します。

TextField.removeTextField()

MovieClip.createTextField() を使って作成したテキストフィールドを削除します。

TextField.replaceSel()

現在の選択内容を置き換えます。

TextField.replaceText()

文字の範囲を置き換えます。

TextField.setNewTextFormat()

ユーザーまたはメソッドが挿入するテキストに TextFormat オブジェクトを設定します。

TextField.setTextFormat()

テキストフィールド内の指定したテキスト範囲に対して TextFormat オブジェクトを設定します。


TextField クラスのプロパティ一覧


プロパティ

説明

TextField._alpha

テキストフィールドインスタンスの透明度。

TextField.autoSize

テキストフィールドの自動的な整列および拡大/縮小を制御します。

TextField.background

テキストフィールドに背景の塗りがあるかどうかを示します。

TextField.backgroundColor

背景の塗りの色を示します。

TextField.border

テキストフィールドに境界線があるかどうかを示します。

TextField.borderColor

境界線の色を示します。

TextField.bottomScroll

読み取り専用; テキストフィールドの表示範囲の最終行。

TextField.embedFonts

テキストフィールドで埋め込みフォントのアウトラインを使用するか、デバイスフォントを使用するかを示します。

TextField._height

テキストフィールドインスタンスの高さ (ピクセル単位)。これはテキストフィールドの境界ボックスにのみ影響します。境界線の太さやテキストフォントサイズには影響しません。

TextField.hscroll

テキストフィールドの水平スクロール値を示します。

TextField.html

テキストフィールドに HTML 表現があるかどうかを示すフラグ。

TextField.htmlText

テキストフィールドの内容を HTML で示します。

TextField.length

読み取り専用; テキストフィールド内の文字数です。

TextField.maxChars

テキストフィールドに入る最大の文字数。

TextField.maxhscroll

読み取り専用; TextField.hscroll の最大値です。

TextField.maxscroll

読み取り専用; TextField.scroll の最大値です。

TextField.menu

ContextMenu オブジェクトをテキストフィールドに関連付けます。

TextField.mouseWheelEnabled

複数行のテキストフィールドで、マウスポインタがテキストフィールドにある状態でユーザーがホイールを回転させると、自動的にスクロールするかどうかを示します。

TextField.multiline

テキストフィールドに複数の行があるかどうかを示します。

TextField._name

テキストフィールドインスタンスのインスタンス名。

TextField._parent

このインスタンスの親であるインスタンスへの参照。タイプは Button または MovieClip です。

TextField.password

テキストフィールドの入力文字を隠すかどうかを示します。

TextField._quality

SWF ファイルのレンダリング品質を示します。

TextField.restrict

ユーザーがテキストフィールドに入力できる文字のセット。

TextField._rotation

テキストフィールドインスタンスの回転角度。

TextField.scroll

テキストフィールドの現在のスクロール位置を示します。

TextField.selectable

テキストフィールドが選択可能かどうかを示します。

TextField.tabEnabled

ムービークリップが自動タブ順に含まれているかどうかを示します。

TextField.tabIndex

オブジェクトのタブ順を示します。

TextField._target

読み取り専用; 指定したテキストフィールドインスタンスのターゲットパス。

TextField.text

テキストフィールドの現在のテキスト。

TextField.textColor

テキストフィールドの現在のテキストの色。

TextField.textHeight

テキストフィールドの境界ボックスの高さ。

TextField.textWidth

テキストフィールドの境界ボックスの幅。

TextField.type

 テキストフィールドがテキスト入力フィールドであるか、動的テキストフィールドであるかを示します。
上記でも説明しましたがテキスト入力フィールドの場合値はinput ダイナミックテキストフィールドはdynamicです。

TextField._url

読み取り専用; テキストフィールドインスタンスを作成した SWF ファイルの URL。

TextField.variable

テキストフィールドに関連付けられた変数名。

TextField._visible

テキストフィールドインスタンスの表示/非表示を決定するブール値。

TextField._width

テキストフィールドインスタンスの幅 (ピクセル単位)。これはテキストフィールドの境界ボックスにのみ影響します。境界線の太さまたはテキストフォントサイズには影響しません。

TextField.wordWrap

テキストフィールドのテキストを折り返すかどうかを示します。

TextField._x

テキストフィールドインスタンスの x 座標。

TextField._xmouse

読み取り専用; テキストフィールドインスタンスを基準にしたカーソルの x 座標。

TextField._xscale

テキストフィールドインスタンスの水平方向の拡大/縮小率を指定する値。

TextField._y

テキストフィールドインスタンスの y 座標。

TextField._ymouse

テキストフィールドインスタンスを基準にしたカーソルの y 座標。

TextField._yscale

テキストフィールドインスタンスの垂直方向の拡大/縮小率を指定する値。

TextField クラスのイベントハンドラ一覧

イベントハンドラ

説明

TextField.onChanged

テキストフィールドが変更されると、呼び出されます。

TextField.onKillFocus

テキストフィールドがフォーカスを失うと、呼び出されます。

TextField.onScroller

テキストフィールドのスクロールプロパティが変わると、呼び出されます。

TextField.onSetFocus

テキストフィールドがフォーカスを受け取ると、呼び出されます。


TextField クラスのリスナー一覧

メソッド

説明

TextField.onChanged

テキストフィールドが変更されると、呼び出されます。

TextField.onScroller

テキストフィールドの scroll プロパティまたは maxscroll プロパティの変更通知を受け取ります。