パッケージflash.events
クラスpublic class TextEvent
継承TextEvent Inheritance Event Inheritance Object
サブクラス DataEvent, ErrorEvent, IMEEvent

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

Flash® Player では、ユーザーがテキストフィールドにテキストを入力するか、HTML 対応のテキストフィールドのハイパーリンクをクリックしたときに、TextEvent オブジェクトが送出されます。次の 2 種類のテキストイベントがあります。TextEvent.LINK および TextEvent.TEXT_INPUT

例を表示

関連項目

flash.text.TextField


パブリック プロパティ
 プロパティ定義元
 Inheritedbubbles : Boolean
[read-only] イベントがバブリングイベントかどうかを示します。
Event
 Inheritedcancelable : Boolean
[read-only] イベントに関連付けられた動作を回避できるかどうかを示します。
Event
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 InheritedcurrentTarget : Object
[read-only] イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
Event
 InheritedeventPhase : uint
[read-only] イベントフローの現在の段階です。
Event
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
 Inheritedtarget : Object
[read-only] イベントターゲットです。
Event
  text : String
textInput イベントの場合は、ユーザーが入力した文字または文字の連続です。
TextEvent
 Inheritedtype : String
[read-only] イベントのタイプです。
Event
パブリック メソッド
 メソッド定義元
  
TextEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, text:String = "")
テキストイベントに関する情報を含む Event オブジェクトを作成します。
TextEvent
  
TextEvent オブジェクトのコピーを作成して、各プロパティの値を元のプロパティの値と一致するように設定します。
TextEvent
 Inherited
formatToString(className:String, ... arguments):String
カスタム Event クラスに toString() メソッドを実装するためのユーティリティ関数です。
Event
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
イベントで preventDefault() が呼び出されたかどうかを確認します。
Event
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
イベントのデフォルトの動作をキャンセルできる場合に、その動作をキャンセルします。
Event
 Inherited
指定されたプロパティが存在し列挙できるかどうかを示します。
Object
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
イベントフローの現在のノードおよび後続するノードで、イベントリスナーが処理されないようにします。
Event
 Inherited
イベントフローの現在のノードに後続するノードで、イベントリスナーが処理されないようにします。
Event
  
TextEvent オブジェクトのすべてのプロパティを含むストリングを返します。
TextEvent
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
パブリック 定数
 定数定義元
 InheritedACTIVATE : String = "activate"
[static] activate イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedADDED : String = "added"
[static] added イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedADDED_TO_STAGE : String = "addedToStage"
[static] addedToStage イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedCANCEL : String = "cancel"
[static] cancel イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedCHANGE : String = "change"
[static] change イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedCLOSE : String = "close"
[static] close イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedCOMPLETE : String = "complete"
[static] complete イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedCONNECT : String = "connect"
[static] connect イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedDEACTIVATE : String = "deactivate"
[static] deactivate イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedENTER_FRAME : String = "enterFrame"
[static] enterFrame イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedFULLSCREEN : String = "fullScreen"
[static] fullScreen イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedID3 : String = "id3"
[static] id3 イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedINIT : String = "init"
[static] init イベントオブジェクトの type プロパティの値を定義します。
Event
  LINK : String = "link"
[static] link イベントオブジェクトの type プロパティ値を定義します。
TextEvent
 InheritedMOUSE_LEAVE : String = "mouseLeave"
[static] mouseLeave イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedOPEN : String = "open"
[static] open イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedREMOVED : String = "removed"
[static] removed イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedREMOVED_FROM_STAGE : String = "removedFromStage"
[static] removedFromStage イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedRENDER : String = "render"
[static] render イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedRESIZE : String = "resize"
[static] resize イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedSCROLL : String = "scroll"
[static] scroll イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedSELECT : String = "select"
[static] select イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedSOUND_COMPLETE : String = "soundComplete"
[static] soundComplete イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedTAB_CHILDREN_CHANGE : String = "tabChildrenChange"
[static] tabChildrenChange イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedTAB_ENABLED_CHANGE : String = "tabEnabledChange"
[static] tabEnabledChange イベントオブジェクトの type プロパティ値を定義します。
Event
 InheritedTAB_INDEX_CHANGE : String = "tabIndexChange"
[static] tabIndexChange イベントオブジェクトの type プロパティ値を定義します。
Event
  TEXT_INPUT : String = "textInput"
[static] textInput イベントオブジェクトの type プロパティ値を定義します。
TextEvent
 InheritedUNLOAD : String = "unload"
[static] unload イベントオブジェクトの type プロパティ値を定義します。
Event
プロパティの詳細
textプロパティ
text:String  [read-write]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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
Player のバージョン : Flash Player 9

テキストイベントに関する情報を含む 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 プロパティを通じてこの情報にアクセスできます。

関連項目

メソッドの詳細
clone()メソッド
public override function clone():Event

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

TextEvent オブジェクトのコピーを作成して、各プロパティの値を元のプロパティの値と一致するように設定します。

戻り値
Event — 元のオブジェクトと同じプロパティ値を含む新しい TextEvent オブジェクトです。
toString()メソッド 
public override function toString():String

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

TextEvent オブジェクトのすべてのプロパティを含むストリングを返します。ストリングは次の形式です。

[TextEvent type=value bubbles=value cancelable=value text=value]

戻り値
String — TextEvent オブジェクトのすべてのプロパティを含むストリングです。
定数の詳細
LINK定数
public static const LINK:String = "link"

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

type プロパティ (link イベントオブジェクト) の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblestrue
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetクリックされたハイパーリンクを含むテキストフィールドです。target は、必ずしもイベントリスナーを登録した表示リスト内のオブジェクトとは限りません。現在イベントを処理している表示リスト内のオブジェクトにアクセスするには、currentTarget プロパティを使用します。
text"event:" の後の URL の残りの部分は、

関連項目




この例では、HTML テキストのハイパーリンクをクリックすると、テキストイベントがトリガされます。リンクによって、指定された Web サイトにシステムのオペレーティングシステムに基づいてユーザーが転送されるか、ユーザーが指定した半径に基づいて円が描画されます。

テキストフィールドが作成され、その内容が htmlText プロパティを使用して HTML 形式のストリングに設定されます。リンクには、識別しやすいように下線が付けられています。Flash Player では、マウスをリンク上に移動したときにのみ、マウスポインタの形が変更します。ユーザーがマウスをクリックしたときに、ActionScript メソッドが確実に起動されるようにするために、リンクの URL はストリング "event:" で始まり、TextEvent.LINK イベントにリスナーを追加します。

ユーザーがリンクをクリックするとトリガされる linkHandler() メソッドは、そのテキストフィールドに対するすべてのリンクイベントを管理します。最初の if ステートメントでイベントの text プロパティが調べられます。このプロパティには、ストリング "event:" 以降の URL の残りの部分が格納されています。ユーザーがオペレーティングシステムのリンクをクリックした場合、システムの 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
Player のバージョン : Flash Player 9

type プロパティ (textInput イベントオブジェクト) の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblestrue
cancelabletrue は、preventDefault() メソッドを呼び出して、デフォルトの動作をキャンセルします。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
target文字が入力されるテキストフィールドです。target は、必ずしもイベントリスナーを登録した表示リスト内のオブジェクトとは限りません。現在イベントを処理している表示リスト内のオブジェクトにアクセスするには、currentTarget プロパティを使用します。
textユーザーが入力した文字または文字の連続です。

関連項目




次の例で、特別な組み合わせキー (パスワードに類似) の生成方法を説明します。この組み合わせキーは、7 文字の英数字から成り、2 文字目と 5 文字目が数字です。

事前の使用説明、ユーザー入力、および警告 (エラー) メッセージの 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);
        }
    }
}
例の使用法
TextEventExample.as

次の例では、TextEventExample クラスを使用して、テキストフィールドを作成し、さまざまテキストイベントを受け取ります。この例では、次の処理を実行します。
  1. 後で使用する 2 つの URL の定数を宣言します。
  2. 後で使用する TextField 型の 2 つの変数を宣言します。
  3. クラスコンストラクタが次の 2 つのメソッドを呼び出します。
    • init() は、TextField オブジェクトを初期化し、イベントリスナーを追加します。
    • draw() は、TextFields を表示リストに追加し、表示するテキストを割り当てます。
  4. リスナーである 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);
        }
    }
}




 

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

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/events/TextEvent.html