パッケージ | flash.events |
クラス | public class TextEvent |
継承 | TextEvent Event Object |
サブクラス | DataEvent, ErrorEvent, IMEEvent |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
TextEvent.LINK
および TextEvent.TEXT_INPUT
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
bubbles : Boolean [読み取り専用]
イベントがバブリングイベントかどうかを示します。 | Event | ||
cancelable : Boolean [読み取り専用]
イベントに関連付けられた動作を回避できるかどうかを示します。 | Event | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
currentTarget : Object [読み取り専用]
イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 | Event | ||
eventPhase : uint [読み取り専用]
イベントフローの現在の段階です。 | Event | ||
target : Object [読み取り専用]
イベントターゲットです。 | Event | ||
text : String
textInput イベントの場合は、ユーザーが入力した文字または文字の連続です。 | TextEvent | ||
type : String [読み取り専用]
イベントのタイプです。 | Event |
メソッド | 定義元 | ||
---|---|---|---|
テキストイベントに関する情報を含む Event オブジェクトを作成します。 | TextEvent | ||
[オーバーライド]
TextEvent オブジェクトのコピーを作成して、各プロパティの値を元のプロパティの値と一致するように設定します。 | TextEvent | ||
カスタム ActionScript 3.0 Event クラスに toString() メソッドを実装するためのユーティリティ関数です。 | Event | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
イベントで preventDefault() メソッドが呼び出されたかどうかを確認します。 | Event | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
イベントのデフォルト動作をキャンセルできる場合に、その動作をキャンセルします。 | Event | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
イベントフローの現在のノードおよび後続するノードで、イベントリスナーが処理されないようにします。 | Event | ||
イベントフローの現在のノードに後続するノードで、イベントリスナーが処理されないようにします。 | Event | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
[オーバーライド]
TextEvent オブジェクトのすべてのプロパティを含むストリングを返します。 | TextEvent | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
定数 | 定義元 | ||
---|---|---|---|
LINK : String = "link" [静的]
link イベントオブジェクトの type プロパティ値を定義します。 | TextEvent | ||
TEXT_INPUT : String = "textInput" [静的]
textInput イベントオブジェクトの type プロパティ値を定義します。 | TextEvent |
text | プロパティ |
text:String
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
textInput
イベントの場合は、ユーザーが入力した文字または文字の連続です。link
イベントの場合、event
属性(href
属性)のテキストです。この属性は、<a>
タグに含まれます。
実装
public function get text():String
public function set text(value:String):void
例 ( この例の使用方法 )
link
イベントを示します。
import flash.text.TextField; import flash.events.TextEvent; var tf:TextField = new TextField(); tf.htmlText = "<a href='event:myEvent'>Click Me.</a>"; tf.addEventListener("link", clickHandler); addChild(tf); function clickHandler(e:TextEvent):void { trace(e.type); // link trace(e.text); // myEvent }
TextEvent | () | コンストラクター |
public function TextEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, text:String = "")
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
テキストイベントに関する情報を含む Event オブジェクトを作成します。イベントリスナーには Event オブジェクトがパラメーターとして渡されます。
パラメーターtype:String — イベントのタイプです。イベントリスナーは、継承された type プロパティを通じてこの情報にアクセスできます。有効な値は次のとおりです。TextEvent.LINK および TextEvent.TEXT_INPUT
| |
bubbles:Boolean (default = false ) — Event オブジェクトがイベントフローのバブリング段階で処理されるかどうかを判断します。イベントリスナーは、継承された bubbles プロパティを通じてこの情報にアクセスできます。
| |
cancelable:Boolean (default = false ) — Event オブジェクトがキャンセル可能かどうかを判断します。イベントリスナーは、継承された cancelable プロパティを通じてこの情報にアクセスできます。
| |
text:String (default = " ") — ユーザーが入力したテキストの 1 つ以上の文字です。イベントリスナーは、text プロパティを通じてこの情報にアクセスできます。
|
関連する API エレメント
clone | () | メソッド |
toString | () | メソッド |
LINK | 定数 |
public static const LINK:String = "link"
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
type
プロパティ(link
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | true |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | クリックされたハイパーリンクを含むテキストフィールドです。target は、必ずしもイベントリスナーを登録した表示リスト内のオブジェクトとは限りません。現在イベントを処理している表示リスト内のオブジェクトにアクセスするには、currentTarget プロパティを使用します。 |
text | URL の、"event:" の後に続く部分です。 |
関連する API エレメント
例 ( この例の使用方法 )
テキストフィールドが作成され、その内容が htmlText
プロパティを使用して HTML 形式のストリングに設定されます。リンクにはユーザーが識別しやすいように下線が付きます。 (Adobe Flash Player では、マウスポインターがリンクの上に置かれたときだけポインターが変わります。)ユーザーがリンクをクリックしたときに ActionScript メソッドが確実に起動されるようにするため、リンクの URL の先頭にストリング "event:"
を付加し、TextEvent.LINK
イベントのリスナーを追加しています。
ユーザーがリンクをクリックした後にトリガーされる linkHandler()
メソッドは、そのテキストフィールドに関するすべてのリンクイベントを管理します。最初の if ステートメントでイベントの text
プロパティを調べます。このプロパティには、URL のストリング "event:"
以降の部分が格納されています。ユーザーがオペレーティングシステムのリンクをクリックした場合、システムの Capabilities.os
プロパティから取得されたユーザーの現在のオペレーティングシステムの名前を使用して、指定の Web サイトにユーザーが送られます。 それ以外の場合は、選択された半径サイズ(これはイベントの text
プロパティによって渡されます)を使用して、テキストフィールドの下に円が描画されます。ユーザーが半径のリンクをクリックするたびに、描画されている円が消去され、選択した半径サイズで新しい赤い円が描画されます。
package { import flash.display.Sprite; import flash.events.TextEvent; import flash.errors.IOError; import flash.events.IOErrorEvent; import flash.system.Capabilities; import flash.net.navigateToURL; import flash.net.URLRequest; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.display.Shape; import flash.display.Graphics; public class TextEvent_LINKExample extends Sprite { private var myCircle:Shape = new Shape(); public function TextEvent_LINKExample() { var myTextField:TextField = new TextField(); myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.multiline = true; myTextField.background = true; myTextField.htmlText = "Draw a circle with the radius of <u><a href=\"event:20\">20 pixels</a></u>.<br>" + "Draw a circle with the radius of <u><a href=\"event:50\">50 pixels</a></u>.<br><br>" + "<u><a href=\"event:os\">Learn about your operating system.</a></u><br>"; myTextField.addEventListener(TextEvent.LINK, linkHandler); this.addChild(myTextField); this.addChild(myCircle); } private function linkHandler(e:TextEvent):void { var osString:String = Capabilities.os; if(e.text == "os") { if (osString.search(/Windows/) != -1 ){ navigateToURL(new URLRequest("http://www.microsoft.com/"), "_self"); }else if (osString.search(/Mac/) != -1 ) { navigateToURL(new URLRequest("http://www.apple.com/"), "_self"); } else if (osString.search(/linux/i)!= -1) { navigateToURL(new URLRequest("http://www.tldp.org/"), "_self"); } } else { myCircle.graphics.clear(); myCircle.graphics.beginFill(0xFF0000); myCircle.graphics.drawCircle(100, 150, Number(e.text)); myCircle.graphics.endFill(); } } } }
TEXT_INPUT | 定数 |
public static const TEXT_INPUT:String = "textInput"
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
type
プロパティ(textInput
イベントオブジェクト)の値を定義します。
注意:このイベントは、Delete または Backspace キーについては送出されません。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | true |
cancelable | true 。デフォルトの動作を取り消すには、preventDefault() メソッドを呼び出します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 文字が入力されるテキストフィールドです。target は、必ずしもイベントリスナーを登録した表示リスト内のオブジェクトとは限りません。現在イベントを処理している表示リスト内のオブジェクトにアクセスするには、currentTarget プロパティを使用します。 |
text | ユーザーが入力した文字または文字の連続です。 |
関連する API エレメント
例 ( この例の使用方法 )
事前の使用説明、ユーザー入力、および警告(エラー)メッセージの 3 つのテキストフィールドが作成されます。textInputHandler()
メソッドをトリガーすることでユーザーのテキスト入力に応答するために、イベントリスナーが追加されます。(ユーザーがテキストを入力するたびに、TextEvent.TEXT_INPUT
イベントが送出されます。
注意:テキストイベントは、ユーザーが文字を入力したときに送出されます。Backspace などのキーボード入力に対しては送出されません。 すべてのキーボードイベントをキャッチするには、KeyboardEvent
イベントのリスナーを使用します。)
textInputHandler()
メソッドは、ユーザー入力を制御および管理します。preventDefault()
メソッドを使用して、テキストが直ちに入力テキストフィールドに表示されないようにします。フィールドを更新するのはアプリケーションの役割です。既に入力した文字(result
ストリング)の削除操作または変更操作を元に戻せるように、ユーザーが新しい文字を入力するときに入力テキストフィールドの内容を result
ストリングに割り当て直します。 また、ユーザーの操作性に一貫性を持たせるために、setSelection()
メソッドによって、テキストフィールド内の最後に選択された文字の後に挿入ポインター(キャレット)を配置します。
textInputHandler()
メソッドの最初の if ステートメントで、組み合わせキーの 2 文字目と 5 文字目に相当する入力文字を調べます。これらは数字である必要があります。 ユーザー入力が正しい場合は、updateCombination()
メソッドを呼び出して、組み合わせキーストリング(result
)の末尾にユーザー入力を追加します。 updateCombination()
メソッドでは、選択された文字の後への挿入ポインターの移動も行います。 7 文字が入力されたら、textInputHandler()
メソッドの最後の if ステートメントで、inputTextField
テキストフィールドのタイプを INPUT
から DYNAMIC
に変更します。これは、ユーザーがこれ以上文字を入力したり変更したりできないことを意味します。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; import flash.events.TextEvent; public class TextEvent_TEXT_INPUTExample extends Sprite { private var instructionTextField:TextField = new TextField(); private var inputTextField:TextField = new TextField(); private var warningTextField:TextField = new TextField(); private var result:String = ""; public function TextEvent_TEXT_INPUTExample() { instructionTextField.x = 10; instructionTextField.y = 10; instructionTextField.background = true; instructionTextField.autoSize = TextFieldAutoSize.LEFT; instructionTextField.text = "Please enter a value in the format A#AA#AA,\n" + "where 'A' represents a letter and '#' represents a number.\n" + "(Note that once you input a character you can't change it.)" ; inputTextField.x = 10; inputTextField.y = 70; inputTextField.height = 20; inputTextField.width = 75; inputTextField.background = true; inputTextField.border = true; inputTextField.type = TextFieldType.INPUT; warningTextField.x = 10; warningTextField.y = 100; warningTextField.autoSize = TextFieldAutoSize.LEFT; inputTextField.addEventListener(TextEvent.TEXT_INPUT, textInputHandler); this.addChild(instructionTextField); this.addChild(inputTextField); this.addChild(warningTextField); } private function textInputHandler(event:TextEvent):void { var charExp:RegExp = /[a-zA-z]/; var numExp:RegExp = /[0-9]/; event.preventDefault(); inputTextField.text = result; inputTextField.setSelection(result.length + 1, result.length + 1); if (inputTextField.text.length == 1 || inputTextField.text.length == 4) { if(numExp.test(event.text) == true) { updateCombination(event.text); } else { warningTextField.text = "You need a single digit number."; } }else { if(charExp.test(event.text) == true) { updateCombination(event.text); } else { warningTextField.text = "You need an alphabet character."; } } if(inputTextField.text.length == 7) { inputTextField.type = TextFieldType.DYNAMIC; instructionTextField.text = "CONGRATULATIONS. You've done."; } } private function updateCombination(s:String):void { warningTextField.text = ""; result += s; inputTextField.text = result; inputTextField.setSelection(result.length + 1, result.length + 1); } } }
- 後で使用する 2 つの URL の定数を宣言します。
- 後で使用する TextField 型の 2 つの変数を宣言します。
- クラスコンストラクターが次の 2 つのメソッドを呼び出します。
init()
は、TextField オブジェクトを初期化し、イベントリスナーを追加します。draw()
は、TextFields を表示リストに追加し、表示するテキストを割り当てます。
- リスナーである
linkHandler()
とtextInputHandler()
は、イベントタイプに応じてイベントに反応します。linkHandler()
メソッドは、まだ開いていない場合は、Web ブラウザーを開き、クリックされた URL に移動します。textInputHandler()
メソッドは、関連するテキストフィールドでキーが押されるたびに情報を表示します。
注意:この例に示すドメインは架空のものです。[yourDomain]
は実際のドメインに置き換える必要があります。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; import flash.events.TextEvent; import flash.events.TextEvent; import flash.net.URLRequest; import flash.net.navigateToURL; public class TextEventExample extends Sprite { private const DOMAIN_1_URL:String = "http://www.[yourDomain].com"; private const DOMAIN_2_URL:String = "http://www.[yourDomain].com"; private var linkTxt:TextField; private var textInputTxt:TextField; public function TextEventExample() { init(); draw(); } private function init():void { linkTxt = new TextField(); linkTxt.addEventListener(TextEvent.LINK, linkHandler); linkTxt.height = 60; linkTxt.autoSize = TextFieldAutoSize.LEFT; linkTxt.multiline = true; textInputTxt = new TextField(); textInputTxt.addEventListener(TextEvent.TEXT_INPUT, textInputHandler); textInputTxt.type = TextFieldType.INPUT; textInputTxt.background = true; textInputTxt.border = true; textInputTxt.height = 20; } private function draw():void { addChild(linkTxt); linkTxt.htmlText += createLink(DOMAIN_1_URL, "Click to go to first domain"); linkTxt.htmlText += "<br />"; linkTxt.htmlText += createLink(DOMAIN_2_URL, "Click to go to second domain"); addChild(textInputTxt); textInputTxt.y = linkTxt.height; textInputTxt.text = "type here"; } private function createLink(url:String, text:String):String { var link:String = ""; link += "<font color='#0000FF'>"; link += "<u>"; link += "<b>"; link += "<a href='event:" + url + "'>" + text + "</a>"; link += "</b>"; link += "</u>"; link += "</font>"; return link; } private function linkHandler(e:TextEvent):void { var request:URLRequest = new URLRequest(e.text); navigateToURL(request); } private function textInputHandler(e:TextEvent):void { trace(">> ============================"); trace(">> e.text: " + e.text); trace(">> textInputTxt.text: " + textInputTxt.text); } } }
Tue Jun 12 2018, 10:34 AM Z