包 | flash.events |
类 | public class TextEvent |
继承 | TextEvent Event Object |
子类 | DataEvent, ErrorEvent, IMEEvent |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
TextEvent.LINK
和 TextEvent.TEXT_INPUT
。
另请参见
属性 | 定义方 | ||
---|---|---|---|
bubbles : Boolean [只读 (read-only)] 指示事件是否为冒泡事件。 | Event | ||
cancelable : Boolean [只读 (read-only)] 指示是否可以阻止与事件相关联的行为。 | Event | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
currentTarget : Object [只读 (read-only)] 当前正在使用某个事件侦听器处理 Event 对象的对象。 | Event | ||
eventPhase : uint [只读 (read-only)] 事件流中的当前阶段。 | Event | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | ||
target : Object [只读 (read-only)] 事件目标。 | Event | ||
text : String 在 textInput 事件中,由用户输入的字符或字符序列。 | TextEvent | ||
type : String [只读 (read-only)] 事件的类型。 | Event |
方法 | 定义方 | ||
---|---|---|---|
创建一个 Event 对象,其中包含有关文本事件的信息。 | TextEvent | ||
创建 TextEvent 对象的副本,并设置每个属性的值以匹配原始属性值。 | TextEvent | ||
用于在自定义 ActionScript 3.0 Event 类中实现 toString() 方法的实用程序函数。 | Event | ||
指示对象是否已经定义了指定的属性。 | Object | ||
检查是否已对事件调用 preventDefault() 方法。 | Event | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
如果可以取消事件的默认行为,则取消该行为。 | Event | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
防止对事件流中当前节点中和所有后续节点中的事件侦听器进行处理。 | Event | ||
防止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。 | Event | ||
返回一个字符串,其中包含 TextEvent 对象的所有属性。 | TextEvent | ||
返回指定对象的原始值。 | Object |
常量 | 定义方 | ||
---|---|---|---|
ACTIVATE : String = "activate" [静态] ACTIVATE 常量定义 activate 事件对象的 type 属性的值。 | Event | ||
ADDED : String = "added" [静态] Event.ADDED 常量定义 added 事件对象的 type 属性值。 | Event | ||
ADDED_TO_STAGE : String = "addedToStage" [静态] Event.ADDED_TO_STAGE 常量定义 addedToStage 事件对象的 type 属性值。 | Event | ||
CANCEL : String = "cancel" [静态] Event.CANCEL 常量定义 cancel 事件对象的 type 属性的值。 | Event | ||
CHANGE : String = "change" [静态] Event.CHANGE 常量定义 change 事件对象的 type 属性值。 | Event | ||
CLEAR : String = "clear" [静态] Event.CLEAR 常量定义 clear 事件对象的 type 属性的值。 | Event | ||
CLOSE : String = "close" [静态] Event.CLOSE 常量定义 close 事件对象的 type 属性的值。 | Event | ||
CLOSING : String = "closing" [静态] Event.CLOSING 常量定义 closing 事件对象的 type 属性值。 | Event | ||
COMPLETE : String = "complete" [静态] Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。 | Event | ||
CONNECT : String = "connect" [静态] Event.CONNECT 常量定义 connect 事件对象的 type 属性值。 | Event | ||
COPY : String = "copy" [静态] 定义 copy 事件对象的 type 属性值。 | Event | ||
CUT : String = "cut" [静态] 定义 cut 事件对象的 type 属性值。 | Event | ||
DEACTIVATE : String = "deactivate" [静态] Event.DEACTIVATE 常量定义 deactivate 事件对象的 type 属性值。 | Event | ||
DISPLAYING : String = "displaying" [静态] Event.DISPLAYING 常量定义 displaying 事件对象的 type 属性值。 | Event | ||
ENTER_FRAME : String = "enterFrame" [静态] Event.ENTER_FRAME 常量定义 enterFrame 事件对象的 type 属性值。 | Event | ||
EXIT_FRAME : String = "exitFrame" [静态] Event.EXIT_FRAME 常量定义 exitFrame 事件对象的 type 属性的值。 | Event | ||
EXITING : String = "exiting" [静态] Event.EXITING 常量定义 exiting 事件对象的 type 属性值。 | Event | ||
FRAME_CONSTRUCTED : String = "frameConstructed" [静态] Event.FRAME_CONSTRUCTED 常量定义 frameConstructed 事件对象的 type 属性的值。 | Event | ||
FULLSCREEN : String = "fullScreen" [静态] Event.FULL_SCREEN 常量定义 fullScreen 事件对象的 type 属性值。 | Event | ||
HTML_BOUNDS_CHANGE : String = "htmlBoundsChange" [静态] Event.HTML_BOUNDS_CHANGE 常量定义 htmlBoundsChange 事件对象的 type 属性值。 | Event | ||
HTML_DOM_INITIALIZE : String = "htmlDOMInitialize" [静态] Event.HTML_DOM_INITIALIZE 常量定义 htmlDOMInitialize 事件对象的 type 属性值。 | Event | ||
HTML_RENDER : String = "htmlRender" [静态] Event.HTML_RENDER 常量定义 htmlRender 事件对象的 type 属性值。 | Event | ||
ID3 : String = "id3" [静态] Event.ID3 常量定义 id3 事件对象的 type 属性值。 | Event | ||
INIT : String = "init" [静态] Event.INIT 常量定义 init 事件对象的 type 属性值。 | Event | ||
LINK : String = "link" [静态] 定义 link 事件对象的 type 属性值。 | TextEvent | ||
LOCATION_CHANGE : String = "locationChange" [静态] Event.LOCATION_CHANGE 常量定义 locationChange 事件对象的 type 属性值。 | Event | ||
MOUSE_LEAVE : String = "mouseLeave" [静态] Event.MOUSE_LEAVE 常量定义 mouseLeave 事件对象的 type 属性值。 | Event | ||
NETWORK_CHANGE : String = "networkChange" [静态] Event.NETWORK_CHANGE 常量定义 networkChange 事件对象的 type 属性值。 | Event | ||
OPEN : String = "open" [静态] Event.OPEN 常量用于定义 open 事件对象的 type 属性值。 | Event | ||
PASTE : String = "paste" [静态] Event.PASTE 常量定义 paste 事件对象的 type 属性的值。 | Event | ||
REMOVED : String = "removed" [静态] Event.REMOVED 常量定义 removed 事件对象的 type 属性值。 | Event | ||
REMOVED_FROM_STAGE : String = "removedFromStage" [静态] Event.REMOVED_FROM_STAGE 常量定义 removedFromStage 事件对象的 type 属性值。 | Event | ||
RENDER : String = "render" [静态] Event.RENDER 常量定义 render 事件对象的 type 属性的值。 | Event | ||
RESIZE : String = "resize" [静态] Event.RESIZE 常量定义 resize 事件对象的 type 属性的值。 | Event | ||
SCROLL : String = "scroll" [静态] Event.SCROLL 常量定义 scroll 事件对象的 type 属性值。 | Event | ||
SELECT : String = "select" [静态] Event.SELECT 常量定义 select 事件对象的 type 属性的值。 | Event | ||
SELECT_ALL : String = "selectAll" [静态] Event.SELECT_ALL 常量定义 selectAll 事件对象的 type 属性的值。 | Event | ||
SOUND_COMPLETE : String = "soundComplete" [静态] Event.SOUND_COMPLETE 常量定义 soundComplete 事件对象的 type 属性值。 | Event | ||
TAB_CHILDREN_CHANGE : String = "tabChildrenChange" [静态] Event.TAB_CHILDREN_CHANGE 常量定义 tabChildrenChange 事件对象的 type 属性值。 | Event | ||
TAB_ENABLED_CHANGE : String = "tabEnabledChange" [静态] Event.TAB_ENABLED_CHANGE 常量定义 tabEnabledChange 事件对象的 type 属性值。 | Event | ||
TAB_INDEX_CHANGE : String = "tabIndexChange" [静态] Event.TAB_INDEX_CHANGE 常量定义 tabIndexChange 事件对象的 type 属性值。 | Event | ||
TEXT_INPUT : String = "textInput" [静态] 定义 textInput 事件对象的 type 属性值。 | TextEvent | ||
UNLOAD : String = "unload" [静态] Event.UNLOAD 常量定义 unload 事件对象的 type 属性值。 | Event | ||
USER_IDLE : String = "userIdle" [静态] Event.USER_IDLE 常量定义 userIdle 事件对象的 type 属性值。 | Event | ||
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.LINK 和 TextEvent.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:”之后的其余部分 |
另请参见
创建一个文本字段,并使用 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
| 用户输入的字符或字符序列。 |
另请参见
共创建了三个文本字段,分别用于保存预备说明、用户输入以及警告(错误)消息。添加了一个事件侦听器,以便通过触发 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); } } }
init()
初始化 TextField 对象并将事件侦听器添加到这些对象中。
draw()
将 TextField 添加到显示列表中并赋予要显示的文本。
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); } } }