flash.events
public class TextEvent
继承TextEvent Inheritance Event Inheritance Object
子类 DataEvent, ErrorEvent, IMEEvent

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

用户在文本字段中输入文本或在启用 HTML 的文本字段中单击超链接时,对象将调度 TextEvent 对象。有两种类型的文本事件:TextEvent.LINKTextEvent.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
[静态] 对类或函数对象的原型对象的引用。
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
用于在自定义 ActionScript 3.0 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"
[静态] ACTIVATE 常量定义 activate 事件对象的 type 属性的值。
Event
 InheritedADDED : String = "added"
[静态] Event.ADDED 常量定义 added 事件对象的 type 属性值。
Event
 InheritedADDED_TO_STAGE : String = "addedToStage"
[静态] Event.ADDED_TO_STAGE 常量定义 addedToStage 事件对象的 type 属性值。
Event
 InheritedCANCEL : String = "cancel"
[静态] Event.CANCEL 常量定义 cancel 事件对象的 type 属性的值。
Event
 InheritedCHANGE : String = "change"
[静态] Event.CHANGE 常量定义 change 事件对象的 type 属性值。
Event
 InheritedCLEAR : String = "clear"
[静态] Event.CLEAR 常量定义 clear 事件对象的 type 属性的值。
Event
 InheritedCLOSE : String = "close"
[静态] Event.CLOSE 常量定义 close 事件对象的 type 属性的值。
Event
 InheritedAIR-only CLOSING : String = "closing"
[静态] Event.CLOSING 常量定义 closing 事件对象的 type 属性值。
Event
 InheritedCOMPLETE : String = "complete"
[静态] Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。
Event
 InheritedCONNECT : String = "connect"
[静态] Event.CONNECT 常量定义 connect 事件对象的 type 属性值。
Event
 InheritedCOPY : String = "copy"
[静态] 定义 copy 事件对象的 type 属性值。
Event
 InheritedCUT : String = "cut"
[静态] 定义 cut 事件对象的 type 属性值。
Event
 InheritedDEACTIVATE : String = "deactivate"
[静态] Event.DEACTIVATE 常量定义 deactivate 事件对象的 type 属性值。
Event
 InheritedDISPLAYING : String = "displaying"
[静态] Event.DISPLAYING 常量定义 displaying 事件对象的 type 属性值。
Event
 InheritedENTER_FRAME : String = "enterFrame"
[静态] Event.ENTER_FRAME 常量定义 enterFrame 事件对象的 type 属性值。
Event
 InheritedEXIT_FRAME : String = "exitFrame"
[静态] Event.EXIT_FRAME 常量定义 exitFrame 事件对象的 type 属性的值。
Event
 InheritedAIR-only EXITING : String = "exiting"
[静态] Event.EXITING 常量定义 exiting 事件对象的 type 属性值。
Event
 InheritedFRAME_CONSTRUCTED : String = "frameConstructed"
[静态] Event.FRAME_CONSTRUCTED 常量定义 frameConstructed 事件对象的 type 属性的值。
Event
 InheritedFULLSCREEN : String = "fullScreen"
[静态] Event.FULL_SCREEN 常量定义 fullScreen 事件对象的 type 属性值。
Event
 InheritedAIR-only HTML_BOUNDS_CHANGE : String = "htmlBoundsChange"
[静态] Event.HTML_BOUNDS_CHANGE 常量定义 htmlBoundsChange 事件对象的 type 属性值。
Event
 InheritedAIR-only HTML_DOM_INITIALIZE : String = "htmlDOMInitialize"
[静态] Event.HTML_DOM_INITIALIZE 常量定义 htmlDOMInitialize 事件对象的 type 属性值。
Event
 InheritedAIR-only HTML_RENDER : String = "htmlRender"
[静态] Event.HTML_RENDER 常量定义 htmlRender 事件对象的 type 属性值。
Event
 InheritedID3 : String = "id3"
[静态] Event.ID3 常量定义 id3 事件对象的 type 属性值。
Event
 InheritedINIT : String = "init"
[静态] Event.INIT 常量定义 init 事件对象的 type 属性值。
Event
  LINK : String = "link"
[静态] 定义 link 事件对象的 type 属性值。
TextEvent
 InheritedAIR-only LOCATION_CHANGE : String = "locationChange"
[静态] Event.LOCATION_CHANGE 常量定义 locationChange 事件对象的 type 属性值。
Event
 InheritedMOUSE_LEAVE : String = "mouseLeave"
[静态] Event.MOUSE_LEAVE 常量定义 mouseLeave 事件对象的 type 属性值。
Event
 InheritedAIR-only NETWORK_CHANGE : String = "networkChange"
[静态] Event.NETWORK_CHANGE 常量定义 networkChange 事件对象的 type 属性值。
Event
 InheritedOPEN : String = "open"
[静态] Event.OPEN 常量用于定义 open 事件对象的 type 属性值。
Event
 InheritedPASTE : String = "paste"
[静态] Event.PASTE 常量定义 paste 事件对象的 type 属性的值。
Event
 InheritedREMOVED : String = "removed"
[静态] Event.REMOVED 常量定义 removed 事件对象的 type 属性值。
Event
 InheritedREMOVED_FROM_STAGE : String = "removedFromStage"
[静态] Event.REMOVED_FROM_STAGE 常量定义 removedFromStage 事件对象的 type 属性值。
Event
 InheritedRENDER : String = "render"
[静态] Event.RENDER 常量定义 render 事件对象的 type 属性的值。
Event
 InheritedRESIZE : String = "resize"
[静态] Event.RESIZE 常量定义 resize 事件对象的 type 属性的值。
Event
 InheritedSCROLL : String = "scroll"
[静态] Event.SCROLL 常量定义 scroll 事件对象的 type 属性值。
Event
 InheritedSELECT : String = "select"
[静态] Event.SELECT 常量定义 select 事件对象的 type 属性的值。
Event
 InheritedSELECT_ALL : String = "selectAll"
[静态] Event.SELECT_ALL 常量定义 selectAll 事件对象的 type 属性的值。
Event
 InheritedSOUND_COMPLETE : String = "soundComplete"
[静态] Event.SOUND_COMPLETE 常量定义 soundComplete 事件对象的 type 属性值。
Event
 InheritedTAB_CHILDREN_CHANGE : String = "tabChildrenChange"
[静态] Event.TAB_CHILDREN_CHANGE 常量定义 tabChildrenChange 事件对象的 type 属性值。
Event
 InheritedTAB_ENABLED_CHANGE : String = "tabEnabledChange"
[静态] Event.TAB_ENABLED_CHANGE 常量定义 tabEnabledChange 事件对象的 type 属性值。
Event
 InheritedTAB_INDEX_CHANGE : String = "tabIndexChange"
[静态] Event.TAB_INDEX_CHANGE 常量定义 tabIndexChange 事件对象的 type 属性值。
Event
  TEXT_INPUT : String = "textInput"
[静态] 定义 textInput 事件对象的 type 属性值。
TextEvent
 InheritedUNLOAD : String = "unload"
[静态] Event.UNLOAD 常量定义 unload 事件对象的 type 属性值。
Event
 InheritedAIR-only USER_IDLE : String = "userIdle"
[静态] Event.USER_IDLE 常量定义 userIdle 事件对象的 type 属性值。
Event
 InheritedAIR-only USER_PRESENT : String = "userPresent"
[静态] Event.USER_PRESENT 常量定义 userPresent 事件对象的 type 属性值。
Event
属性详细信息
text属性
text:String  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

textInput 事件中,由用户输入的字符或字符序列。For a link 事件,<a> 标签的 href 属性的 event 属性的文本。



实现
    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

创建一个 Event 对象,其中包含有关文本事件的信息。将 Event 对象作为参数传递给事件侦听器。

参数
type:String — 事件的类型。事件侦听器可以通过继承的 type 属性访问此信息。可能的值包括:TextEvent.LINKTextEvent.TEXT_INPUT
 
bubbles:Boolean (default = false) — 确定 Event 对象是否参与事件流的冒泡阶段。事件侦听器可以通过继承的 bubbles 属性访问此信息。
 
cancelable:Boolean (default = false) — 确定是否可以取消 Event 对象。事件侦听器可以通过继承的 cancelable 属性访问此信息。
 
text:String (default = "") — 用户输入的一个或多个文本字符。事件侦听器可以通过 text 属性访问此信息。

另请参见

方法详细信息
clone()方法
override public function clone():Event

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

创建 TextEvent 对象的副本,并设置每个属性的值以匹配原始属性值。

返回
Event — 其属性值与原始属性值匹配的新 TextEvent 对象。
toString()方法 
override public function toString():String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 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
运行时版本: AIR 1.0 Flash Player 9

定义 link 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles true
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 包含已单击的超链接的文本字段。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。
text URL 中“event:”之后的其余部分

另请参见


示例

在此示例中,用户单击 HTML 文本中的超链接时将触发 text 事件。用户基于系统的操作系统而转到指定的网站,或基于用户选择的半径绘制一个圆,具体取决于该链接。

创建一个文本字段,并使用 htmlText 属性将其内容设置为 HTML 格式的字符串。这些链接带有下划线,以便让用户更容易地识别它们。(只有在鼠标指针位于链接上方后,Adobe Flash Player 才会更改鼠标指针。)若要确保用户的单击操作将调用 ActionScript 方法,链接的 URL 应以字符串“event:”开头并且为 TextEvent.LINK 事件添加了侦听器。

在用户单击链接后触发的 linkHandler() 方法用于管理文本字段的所有 link 事件。第一个 if 语句检查事件的 text 属性,它保存 URL 中“event:”字符串后面的其余部分。如果用户单击了操作系统的链接,则会使用用户的当前操作系统名称(从系统的 Capabilities.os 属性中获取)使用户转到指定的网站。否则,使用所选的半径大小(通过事件的 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

定义 textInput 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles true
cancelable true;调用 preventDefault() 方法以取消默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 在其中输入字符的文本字段。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。
text 用户输入的字符或字符序列。

另请参见


示例

下面的示例指导用户生成一个特殊的组合密钥(类似于密码)。此组合密钥具有 7 个字母数字字符,其中第 2 个和第 5 个字符是数字。

共创建了三个文本字段,分别用于保存预备说明、用户输入以及警告(错误)消息。添加了一个事件侦听器,以便通过触发 textInputHandler() 方法来响应用户的文本输入。(每次用户输入文本时,都会调度 TextEvent.TEXT_INPUT 事件。)

注意:如果用户输入字符,并且不是作为任何键盘输入(如 backspace)的响应,则会调度 text 事件。若要捕获所有键盘事件,请使用 KeyboardEvent 事件的侦听器。)

textInputHandler() 方法用于控制和管理用户输入。preventDefault() 方法用于禁止 Adobe Flash Player 立即在输入文本字段中显示文本。应用程序负责更新该字段。若要撤消用户对已输入的字符(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. 本示例声明了以后要使用的两个 URL 的常量。
  2. 本示例声明了以后要使用的类型为 TextField 的两个变量。
  3. 类构造函数调用以下两个方法:
    • init() 初始化 TextField 对象并将事件侦听器添加到这些对象中。
    • draw() 将 TextField 添加到显示列表中并赋予要显示的文本。
  4. 侦听器 linkHandler()textInputHandler() 根据其事件类型响应事件。如果 Web 浏览器尚未打开,则 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);
        }
    }
}