包 | flash.text |
类 | public class TextField |
继承 | TextField InteractiveObject DisplayObject EventDispatcher Object |
子类 | FlexTextField |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
要动态创建文本字段,请使用 TextField()
构造函数。
TextField 类的方法允许您设置、选择并操作在创作过程中或运行时创建的动态或输入文本字段中的文本。
ActionScript 提供了多种在运行时设置文本格式的方法。TextFormat 类允许您设置 TextField 对象的字符和段落格式。您可以使用 TextField.styleSheet
属性和 StyleSheet 类来对文本字段应用层叠样式表 (CSS) 样式。您可以使用 CSS 设置内置 HTML 标签的样式、定义新的格式设置标签或应用样式。可以将 HTML 格式的文本(该文本可以选择使用 CSS 样式)直接分配给文本字段。分配给文本字段的 HTML 文本可以包含嵌入的媒体(影片剪辑、SWF 文件、GIF 文件、PNG 文件和 JPEG 文件)。文本在嵌入的媒体旁自动换行,这与 Web 浏览器的文本在 HTML 文档中嵌入的媒体旁换行非常类似。
Flash Player 还支持部分 HTML 标签,可以使用这些 HTML 标签设置文本格式。要查看受支持 HTML 标签的列表,请参阅对 htmlText
属性的描述。
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
InteractiveObject 实例的当前辅助功能实现 (AccessibilityImplementation)。 | InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
此显示对象的当前辅助功能选项。 | DisplayObject | ||
alpha : Number
表示指定对象的 Alpha 透明度值。 | DisplayObject | ||
alwaysShowSelection : Boolean
如果设置为 true 且文本字段没有焦点,Flash Player 将以灰色突出显示文本字段中的所选内容。 | TextField | ||
antiAliasType : String
用于此文本字段的消除锯齿类型。 | TextField | ||
autoSize : String
控制文本字段的自动大小调整和对齐。 | TextField | ||
background : Boolean
指定文本字段是否具有背景填充。 | TextField | ||
backgroundColor : uint
文本字段背景的颜色。 | TextField | ||
blendMode : String
BlendMode 类中的一个值,用于指定要使用的混合模式。 | DisplayObject | ||
blendShader : Shader [只写]
设置用于混合前景和背景的着色器。 | DisplayObject | ||
border : Boolean
指定文本字段是否具有边框。 | TextField | ||
borderColor : uint
文本字段边框的颜色。 | TextField | ||
bottomScrollV : int [只读]
一个整数(从 1 开始的索引),表示指定文本字段中当前可以看到的最后一行。 | TextField | ||
cacheAsBitmap : Boolean
如果设置为 true,则 Flash 运行时将缓存显示对象的内部位图表示形式。 | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
如果为非 null,则 Matrix 对象会定义显示对象在 cacheAsBitmap 设置为 true 时的呈现方式。 | DisplayObject | ||
caretIndex : int [只读]
插入点(尖号)位置的索引。 | TextField | ||
condenseWhite : Boolean
一个布尔值,指定是否删除具有 HTML 文本的文本字段中的额外空白(空格、换行符等等)。 | TextField | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
contextMenu : NativeMenu
指定与此对象相关联的上下文菜单。 | InteractiveObject | ||
defaultTextFormat : flash.text:TextFormat
指定应用于新插入文本(例如,用户输入的文本或使用 replaceSelectedText() 方法插入的文本)的格式。 | TextField | ||
displayAsPassword : Boolean
指定文本字段是否是密码文本字段。 | TextField | ||
doubleClickEnabled : Boolean
指定此对象是否接收 doubleClick 事件。 | InteractiveObject | ||
embedFonts : Boolean
指定是否使用嵌入字体轮廓进行呈现。 | TextField | ||
filters : Array
包含当前与显示对象关联的每个滤镜对象的索引数组。 | DisplayObject | ||
focusRect : Object
指定此对象是否显示焦点矩形。 | InteractiveObject | ||
gridFitType : String
用于此文本字段的网格固定类型。 | TextField | ||
height : Number
表示显示对象的高度,以像素为单位。 | DisplayObject | ||
htmlText : String
包含文本字段内容的 HTML 表示形式。 | TextField | ||
length : int [只读]
文本字段中的字符数。 | TextField | ||
loaderInfo : LoaderInfo [只读]
返回一个 LoaderInfo 对象,其中包含加载此显示对象所属的文件的相关信息。 | DisplayObject | ||
mask : DisplayObject
调用显示对象被指定的 mask 对象遮罩。 | DisplayObject | ||
maxChars : int
文本字段中最多可包含的字符数(即用户输入的字符数)。 | TextField | ||
maxScrollH : int [只读]
scrollH 的最大值。 | TextField | ||
maxScrollV : int [只读]
scrollV 的最大值。 | TextField | ||
metaData : Object
如果元数据是通过 PlaceObject4 标记与此 DisplayObject 的实例一起存储在 SWF 文件中的,则获取 DisplayObject 实例的元数据对象。 | DisplayObject | ||
mouseEnabled : Boolean
指定此对象是否接收鼠标或其他用户输入、消息。 | InteractiveObject | ||
mouseWheelEnabled : Boolean
一个布尔值,表示当用户单击某个文本字段并滚动鼠标滚轮时,Flash Player 是否自动滚动多行文本字段。 | TextField | ||
mouseX : Number [只读]
表示此鼠标或用户输入设备位置的 x 坐标,以像素为单位。 | DisplayObject | ||
mouseY : Number [只读]
表示此鼠标或用户输入设备位置的 y 坐标,以像素为单位。 | DisplayObject | ||
multiline : Boolean
表示字段是否为多行文本字段。 | TextField | ||
name : String
表示 DisplayObject 的实例名称。 | DisplayObject | ||
needsSoftKeyboard : Boolean
指定当该 InteractiveObject 实例获得焦点时,是否显示虚拟键盘(显示在屏幕上的软键盘)。 | InteractiveObject | ||
numLines : int [只读]
定义多行文本字段中的文本行数。 | TextField | ||
opaqueBackground : Object
指定显示对象是否由于具有某种背景颜色而不透明。 | DisplayObject | ||
parent : DisplayObjectContainer [只读]
表示包含此显示对象的 DisplayObjectContainer 对象。 | DisplayObject | ||
restrict : String
表示用户可输入到文本字段中的字符集。 | TextField | ||
root : DisplayObject [只读]
对于加载的 SWF 文件中的显示对象,root 属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象。 | DisplayObject | ||
rotation : Number
表示 DisplayObject 实例距其原始方向的旋转程度,以度为单位。 | DisplayObject | ||
rotationX : Number
表示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 x 轴旋转(以度为单位)。 | DisplayObject | ||
rotationY : Number
表示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 y 轴旋转(以度为单位)。 | DisplayObject | ||
rotationZ : Number
表示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 z 轴旋转(以度为单位)。 | DisplayObject | ||
scale9Grid : Rectangle
当前有效的缩放网格。 | DisplayObject | ||
scaleX : Number
表示从注册点开始应用的对象的水平缩放比例(百分比)。 | DisplayObject | ||
scaleY : Number
表示从对象注册点开始应用的对象的垂直缩放比例(百分比)。 | DisplayObject | ||
scaleZ : Number
表示从对象的注册点开始应用的对象的深度缩放比例(百分比)。 | DisplayObject | ||
scrollH : int
当前水平滚动位置。 | TextField | ||
scrollRect : Rectangle
显示对象的滚动矩形范围。 | DisplayObject | ||
scrollV : int
文本在文本字段中的垂直位置。 | TextField | ||
selectable : Boolean
一个布尔值,表示文本字段是否可选。 | TextField | ||
selectionBeginIndex : int [只读]
当前所选内容中第一个字符从零开始的字符索引值。 | TextField | ||
selectionEndIndex : int [只读]
当前所选内容中最后一个字符从零开始的字符索引值。 | TextField | ||
sharpness : Number
此文本字段中字型边缘的清晰度。 | TextField | ||
softKeyboard : String
控制软键盘的外观。 | InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
定义当显示软键盘时应在屏幕上保留的区域(在 iOS 上不支持)。 | InteractiveObject | ||
stage : Stage [只读]
显示对象的舞台。 | DisplayObject | ||
styleSheet : StyleSheet
将样式表附加到文本字段。 | TextField | ||
tabEnabled : Boolean
指定此对象是否遵循 Tab 键顺序。 | InteractiveObject | ||
tabIndex : int
指定 SWF 文件中的对象按 Tab 键顺序排列。 | InteractiveObject | ||
text : String
作为文本字段中当前文本的字符串。 | TextField | ||
textColor : uint
文本字段中文本的颜色(采用十六进制格式)。 | TextField | ||
textHeight : Number [只读]
文本的高度,以像素为单位。 | TextField | ||
textInteractionMode : String [只读]
交互模式属性,默认值为 TextInteractionMode.NORMAL。 | TextField | ||
textWidth : Number [只读]
文本的宽度,以像素为单位。 | TextField | ||
thickness : Number
此文本字段中字型边缘的粗细。 | TextField | ||
transform : flash.geom:Transform
一个对象,具有与显示对象的矩阵、颜色转换和像素范围有关的属性。 | DisplayObject | ||
type : String
文本字段的类型。 | TextField | ||
useRichTextClipboard : Boolean
指定在复制和粘贴文本时是否同时复制和粘贴其格式。 | TextField | ||
visible : Boolean
显示对象是否可见。 | DisplayObject | ||
width : Number
表示显示对象的宽度,以像素为单位。 | DisplayObject | ||
wordWrap : Boolean
一个布尔值,表示文本字段是否自动换行。 | TextField | ||
x : Number
表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。 | DisplayObject | ||
y : Number
表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标。 | DisplayObject | ||
z : Number
表示 DisplayObject 实例相对于 3D 父容器沿 z 轴的 z 坐标位置。 | DisplayObject |
方法 | 由以下参数定义 | ||
---|---|---|---|
创建新的 TextField 实例。 | TextField | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
将 newText 参数指定的字符串追加到文本字段的文本的末尾。 | TextField | ||
将事件调度到事件流中。 | EventDispatcher | ||
返回一个矩形,该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域。 | DisplayObject | ||
返回一个矩形,该矩形是字符的边框。 | TextField | ||
在 x 和 y 参数指定的位置返回从零开始的字符索引值。 | TextField | ||
如果给定一个字符索引,则返回同一段落中第一个字符的索引。 | TextField | ||
返回给定 id 或已使用 <img> 标签添加到 HTML 格式文本字段中的图像或 SWF 文件的 DisplayObject 引用。 | TextField | ||
在 x 和 y 参数指定的位置返回从零开始的行索引值。 | TextField | ||
返回 charIndex 参数指定的字符所在的行的索引值(从零开始)。 | TextField | ||
返回特定文本行中的字符数。 | TextField | ||
返回给定文本行的度量信息。 | TextField | ||
返回 lineIndex 参数指定的行中第一个字符的字符索引。 | TextField | ||
返回 lineIndex 参数指定的行的文本。 | TextField | ||
如果给定一个字符索引,则返回包含给定字符的段落的长度。 | TextField | ||
返回一个矩形,该矩形根据 targetCoordinateSpace 参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。 | DisplayObject | ||
返回 TextFormat 对象,其中包含 beginIndex 和 endIndex 参数指定的文本范围的格式信息。 | TextField | ||
将 point 对象从舞台(全局)坐标转换为显示对象的(本地)坐标。 | DisplayObject | ||
将二维点从舞台(全局)坐标转换为三维显示对象的(本地)坐标。 | DisplayObject | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
计算显示对象的边框,以确定它是否与 obj 显示对象的边框重叠或相交。 | DisplayObject | ||
计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交。 | DisplayObject | ||
[静态]
如果具有指定的 fontName 和 fontStyle(其中的 Font.fontType 为 flash.text.FontType.EMBEDDED)的嵌入字体可用,则将返回 true。 | TextField | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
将三维显示对象的(本地)坐标的三维点转换为舞台(全局)坐标中的二维点。 | DisplayObject | ||
将 point 对象从显示对象的(本地)坐标转换为舞台(全局)坐标。 | DisplayObject | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
使用 value 参数的内容替换当前所选内容。 | TextField | ||
将 beginIndex 和 endIndex 参数指定的字符范围替换为 newText 参数的内容。 | TextField | ||
显示虚拟键盘。 | InteractiveObject | ||
设置循环操作动态属性的可用性。 | Object | ||
将第一个字符和最后一个字符的索引值(使用 beginIndex 和 endIndex 参数指定)指定的文本设置为所选内容。 | TextField | ||
将 format 参数指定的文本格式应用于文本字段中的指定文本。 | TextField | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
将显示对象添加到显示列表中时调度。 | DisplayObject | |||
在将显示对象直接添加到舞台显示列表或将包含显示对象的子树添加至舞台显示列表中时调度。 | DisplayObject | |||
在修改控件值后调度,这与 textInput 事件不同,后者是在修改值之前调度的。 | TextField | |||
当用户从文本上下文菜单中选择“清除”(或“删除”)时调度。 | InteractiveObject | |||
用户在同一 InteractiveObject 上按下并释放用户指针设备的主按钮时调度。 | InteractiveObject | |||
当用户手势触发 AIR 应用程序中与此交互式对象相关联的上下文菜单时调度。 | InteractiveObject | |||
在用户为复制操作激活特定于平台的加速键组合或从文本上下文菜单中选择“复制”时调度。 | InteractiveObject | |||
在用户为剪切操作激活特定于平台的加速键组合或从文本上下文菜单中选择“剪切”时调度。 | InteractiveObject | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
如果 InteractiveObject 的 doubleClickEnabled 标志设置为 true,当用户在该对象上快速连续按下两次并释放指针设备的主按钮时调度。 | InteractiveObject | |||
[播放事件] 播放头进入新帧时调度。 | DisplayObject | |||
[广播事件] 播放头退出当前帧时调度。 | DisplayObject | |||
显示对象获得焦点后调度。 | InteractiveObject | |||
显示对象失去焦点后调度。 | InteractiveObject | |||
[广播事件] 在帧显示对象的构造函数运行之后但在帧脚本运行之前调度。 | DisplayObject | |||
当用户使用 InteractiveObject 实例沿触摸面边缘创建接触点时调度(如在 Siri Remote for Apple TV 上沿触摸面边缘轻击)。有些设备也可能将这种接触解释为多个触摸事件的组合。 | InteractiveObject | |||
当用户在启用触摸设备上的同一 InteractiveObject 实例上按下两个接触点时(例如,在配有触摸屏的移动电话或平板电脑上的显示对象上按下和释放两个手指)调度。 | InteractiveObject | |||
当用户在启用触摸的设备上的 InteractiveObject 实例上移动接触点时(例如,在配有触摸屏的移动电话或平板电脑上的显示对象上从左向右移动手指)调度。 | InteractiveObject | |||
当用户在接触点处使用 InteractiveObject 实例执行旋转手势时(例如,将两个手指放在屏幕上,然后在配有触摸屏的移动电话或平板电脑上的显示对象上旋转这两个手指)调度。 | InteractiveObject | |||
当用户在接触点处使用 InteractiveObject 实例执行滑动手势(例如,在配有触摸屏的移动电话或平板电脑上用三根手指触摸屏幕,然后在一个显示对象上平行移动这三根手指)时调度。 | InteractiveObject | |||
当用户使用 InteractiveObject 实例创建接触点,然后点击启用触屏的设备时(例如,将几个手指放在显示对象上以打开菜单,然后点击一个手指在配有触摸屏的移动电话或平板电脑上选择一个菜单项)调度。 | InteractiveObject | |||
当用户在接触点处使用 InteractiveObject 实例执行缩放手势操作时(例如,将两个手指放在屏幕上,然后在配有触摸屏的移动电话或平板电脑上的显示对象上快速分开手指)调度。 | InteractiveObject | |||
此事件被调度到任何支持使用 IME 进行内联输入的客户端应用程序 | InteractiveObject | |||
用户按下某个键时调度。 | InteractiveObject | |||
用户尝试使用键盘导航更改焦点时调度。 | InteractiveObject | |||
用户释放某个键时调度。 | InteractiveObject | |||
当用户单击支持 HTML 的文本字段中的超链接(其中的 URL 以“event:”开头)时调度。 | TextField | |||
当用户在同一 InteractiveObject 上按下并释放用户指针设备的中间按钮时调度。 | InteractiveObject | |||
当用户在 InteractiveObject 实例上按下指针设备的中间按钮时调度。 | InteractiveObject | |||
当用户在 InteractiveObject 实例上释放指针设备按钮时调度。 | InteractiveObject | |||
当用户在 InteractiveObject 实例上按下指针设备按钮时调度。 | InteractiveObject | |||
用户尝试使用指针设备更改焦点时调度。 | InteractiveObject | |||
用户移动 InteractiveObject 上的指针设备时调度。 | InteractiveObject | |||
用户将指针设备从 InteractiveObject 实例上移开时调度。 | InteractiveObject | |||
用户将指针设备移动到 InteractiveObject 实例上时调度。 | InteractiveObject | |||
当用户在 InteractiveObject 实例上释放指针设备按钮时调度。 | InteractiveObject | |||
当鼠标滚轮滚动到 InteractiveObject 实例上时调度。 | InteractiveObject | |||
当用户释放拖动手势时由拖动启动器 InteractiveObject 调度。 | InteractiveObject | |||
在将拖动对象放置到目标上且已通过对 DragManager.acceptDragDrop() 的调用接受该放置操作时,由目标 InteractiveObject 调度。 | InteractiveObject | |||
当拖动手势进入其边界时由 InteractiveObject 调度。 | InteractiveObject | |||
当拖动手势离开其边界时由 InteractiveObject 调度。 | InteractiveObject | |||
当拖动手势保持在其边界内时,由 InteractiveObject 持续调度。 | InteractiveObject | |||
在拖动操作开始时由在 DragManager.doDrag() 调用中指定为拖动启动器的 InteractiveObject 调度。 | InteractiveObject | |||
在拖动操作期间由在 DragManager.doDrag() 调用中指定为拖动启动器的 InteractiveObject 调度。 | InteractiveObject | |||
在用户为粘贴操作激活特定于平台的加速键组合或从文本上下文菜单中选择“粘贴”时调度。 | InteractiveObject | |||
当用户将活动笔针放低经过屏幕的邻近检测阈值上时调度。 | InteractiveObject | |||
当用户将活动笔针抬高放在屏幕的邻近检测阈值上时调度。 | InteractiveObject | |||
当用户将活动笔针移动到屏幕上但仍保留在邻近检测阈值中时调度。 | InteractiveObject | |||
当用户直接将活动笔针从此 InteractiveObject 上移开但仍保留在屏幕的邻近检测阈值中时调度。 | InteractiveObject | |||
当用户直接将活动笔针移动到此 InteractiveObject 上但仍保留在屏幕的邻近检测阈值中时调度。 | InteractiveObject | |||
当用户从此 InteractiveObject 及其任一子项中移开而仍保留在屏幕的邻近检测阈值中时调度。 | InteractiveObject | |||
当用户将活动笔针从显示列表中子项的对象树中滑过此 InteractiveObject 时(而仍保留在屏幕的邻近检测阈值中)时调度。 | InteractiveObject | |||
在用户首先在 InteractiveObject 实例上按下按钮,然后将指针设备移离 InteractiveObject 实例,释放指针设备上的按钮时调度。 | InteractiveObject | |||
将要从显示列表中删除显示对象时调度。 | DisplayObject | |||
在从显示列表中直接删除显示对象或删除包含显示对象的子树时调度。 | DisplayObject | |||
[广播事件] 将要更新和呈现显示列表时调度。 | DisplayObject | |||
当用户在同一 InteractiveObject 上按下并释放用户指针设备的右按钮时调度。 | InteractiveObject | |||
当用户在 InteractiveObject 实例上按下指针设备按钮时调度。 | InteractiveObject | |||
当用户在 InteractiveObject 实例上释放指针设备按钮时调度。 | InteractiveObject | |||
用户将指针设备从 InteractiveObject 实例上移开时调度。 | InteractiveObject | |||
用户将指针设备移动到 InteractiveObject 实例上时调度。 | InteractiveObject | |||
用户滚动后由 TextField 对象调度。 | TextField | |||
在用户为全选操作激活特定于平台的加速键组合或从文本上下文菜单中选择“全选”时调度。 | InteractiveObject | |||
在放开软键盘之后立即调度。 | InteractiveObject | |||
在放开软键盘之前立即调度。 | InteractiveObject | |||
在隐藏软键盘之后立即调度。 | InteractiveObject | |||
对象的 tabChildren 标志值发生更改时调度。 | InteractiveObject | |||
对象的 tabEnabled 标志发生更改时调度。 | InteractiveObject | |||
对象的 tabIndex 属性值发生更改时调度。 | InteractiveObject | |||
用户输入一个或多个文本字符时,Flash Player 将调度 textInput 事件。 | TextField | |||
当用户更改文本字段交互模式时,Flash Player 会调度 textInteractionModeChange 事件。 | TextField | |||
当用户第一次触摸启用触摸的设备时(例如,用手指触摸配有触摸屏的移动电话或平板)调度。 | InteractiveObject | |||
当用户移除与启用触摸的设备的接触时(例如,将手指从配有触摸屏的移动电话或平板电脑上抬起)调度。 | InteractiveObject | |||
当用户触碰设备时进行调度,而且会连续调度,直到接触点被删除。 | InteractiveObject | |||
当用户将接触点从启用触摸的设备上的 InteractiveObject 实例移开时(例如,在配有触摸屏的移动电话或平板电脑上,将手指从一个显示对象拖到另一个显示对象)调度。 | InteractiveObject | |||
当用户在启用触摸的设备的 InteractiveObject 实例上移动接触点时(例如,在配有触摸屏的移动电话或平板电脑上,将手指从显示对象外的一点拖动到显示对象上的一点)调度。 | InteractiveObject | |||
当用户移动接触点,使其远离启用触摸的设备上的 InteractiveObject 实例时(例如,在配有触摸屏的移动电话或平板电脑上将一个手指从显示对象上的一点移动到显示对象外的一点)调度。 | InteractiveObject | |||
当用户在启用触摸的设备的 InteractiveObject 实例上移动接触点时(例如,在配有触摸屏的移动电话或平板电脑上,将手指从显示对象外的一点拖动到显示对象上的一点)调度。 | InteractiveObject | |||
当用户在启用触摸设备上的已启动接触的同一 InteractiveObject 实例上抬起接触点时(例如,在配有触摸屏的移动电话或平板的显示对象上的某一点处按下并释放手指)调度。 | InteractiveObject |
alwaysShowSelection | 属性 |
alwaysShowSelection:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
如果设置为 true
且文本字段没有焦点,Flash Player 将以灰色突出显示文本字段中的所选内容。如果设置为 false
且文本字段没有焦点,则 Flash Player 不会突出显示文本字段中的所选内容。
默认值为 false。
实现
public function get alwaysShowSelection():Boolean
public function set alwaysShowSelection(value:Boolean):void
相关 API 元素
示例 ( 如何使用本示例 )
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; public class TextField_alwaysShowSelection extends Sprite { public function TextField_alwaysShowSelection() { var label1:TextField = createCustomTextField(0, 20, 200, 20); label1.text = "This text is selected."; label1.setSelection(0, 9); label1.alwaysShowSelection = true; var label2:TextField = createCustomTextField(0, 50, 200, 20); label2.text = "Drag to select some of this text."; } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } }
antiAliasType | 属性 |
antiAliasType:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
用于此文本字段的消除锯齿类型。将 flash.text.AntiAliasType
常数用于此属性。仅在字体为嵌入(即 embedFonts
属性设置为 true
)时可以控制此设置。默认设置为 flash.text.AntiAliasType.NORMAL
。
要设置此属性的值,请使用下列字符串值:
字符串值 | 说明 |
---|---|
flash.text.AntiAliasType.NORMAL | 应用常规文本消除锯齿功能。此值与 Flash Player 7 和早期版本中使用的消除锯齿的类型匹配。 |
flash.text.AntiAliasType.ADVANCED | 应用高级消除锯齿功能,这增加了文本的可读性。(此功能在 Flash Player 8 中可用。)高级消除锯齿功能可以高品质呈现小尺寸的字体。它最适合在具有大量小字号文本的应用程序中使用。建议不要对大于 48 点的字体使用高级消除锯齿功能。 |
实现
public function get antiAliasType():String
public function set antiAliasType(value:String):void
相关 API 元素
autoSize | 属性 |
autoSize:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
控制文本字段的自动大小调整和对齐。TextFieldAutoSize
常数的可接受值为 TextFieldAutoSize.NONE
(默认值)、TextFieldAutoSize.LEFT
、TextFieldAutoSize.RIGHT
和 TextFieldAutoSize.CENTER
。
如果 autoSize
设置为 TextFieldAutoSize.NONE
(默认值),则不会进行调整。
如果 autoSize
设置为 TextFieldAutoSize.LEFT
,会将文本视为左对齐文本,这意味着该文本字段的左边距保持固定,在右边可调整单个文本字段行。如果文本中包括换行符(例如 "\n"
或 "\r"
),则会另外调整底边来适合文本的下一行。如果 wordWrap
也设置为 true
,则仅调整文本字段的底边,而右边距保持固定。
如果 autoSize
设置为 TextFieldAutoSize.RIGHT
,会将文本视为右对齐文本,这意味着该文本字段的右边距保持固定,可在左边调整单个文本字段行。如果文本中包括换行符(例如 "\n" 或 "\r")
,则会另外调整底边来适合文本的下一行。如果 wordWrap
也设置为 true
,则仅调整文本字段的底边,而左边距保持固定。
如果 autoSize
设置为 TextFieldAutoSize.CENTER
,会将文本视为居中对齐文本,这意味着对单个文本字段行的调整将使其在左右边距间均衡分布。如果文本中包括换行符(例如 "\n"
或 "\r"
),则会另外调整底边来适合文本的下一行。如果 wordWrap
也设置为 true
,则仅调整文本字段的底边,而左右边距保持固定。
实现
public function get autoSize():String
public function set autoSize(value:String):void
引发
ArgumentError — 指定的 autoSize 不是 flash.text.TextFieldAutoSize 的成员。
|
相关 API 元素
background | 属性 |
backgroundColor | 属性 |
border | 属性 |
borderColor | 属性 |
bottomScrollV | 属性 |
caretIndex | 属性 |
caretIndex:int
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
插入点(尖号)位置的索引。如果没有显示任何插入点,则在将焦点恢复到字段时,值将为插入点所在的位置(通常为插入点上次所在的位置,如果字段不曾具有焦点,则为 0)。
选择范围索引是从零开始的(例如,第一个位置为 0、第二个位置为 1,依此类推)。
实现
public function get caretIndex():int
相关 API 元素
示例 ( 如何使用本示例 )
printCursorPosition
方法。在这种情况下,将输出 caretIndex
、selectionBeginIndex
和 selectionEndIndex
属性的值。
运行此示例并尝试在 TextField 中单击以选择文本。然后在字段中单击,但不选择文本。如果在文本中单击但不进行选择,caretIndex
属性将指示在何处出现插入点,而 selectionBeginIndex
和 selectionEndIndex
属性则等于 caretIndex
属性值。
package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.text.TextFieldType; public class TextField_caretIndex extends Sprite { public function TextField_caretIndex() { var tf:TextField = createCustomTextField(10, 10, 100, 100); tf.wordWrap = true; tf.type = TextFieldType.INPUT; tf.text = "Click in this text field. Compare the difference between clicking without selecting versus clicking and selecting text."; tf.addEventListener(MouseEvent.CLICK, printCursorPosition); } private function printCursorPosition(event:MouseEvent):void { var tf:TextField = TextField(event.target); trace("caretIndex:", tf.caretIndex); trace("selectionBeginIndex:", tf.selectionBeginIndex); trace("selectionEndIndex:", tf.selectionEndIndex); } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } }
condenseWhite | 属性 |
condenseWhite:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
一个布尔值,指定是否删除具有 HTML 文本的文本字段中的额外空白(空格、换行符等等)。默认值为 false
。condenseWhite
属性只影响使用 htmlText
属性(而非 text
属性)设置的文本。如果使用 text
属性设置文本,则忽略 condenseWhite
。
如果 condenseWhite
设置为 true
,请使用标准 HTML 命令(如 <BR>
和 <P>
),将换行符放在文本字段中。
在设置 htmlText
属性之前设置 condenseWhite
属性。
实现
public function get condenseWhite():Boolean
public function set condenseWhite(value:Boolean):void
相关 API 元素
示例 ( 如何使用本示例 )
condenseWhite
设置为 false
和将其设置为 true
之间的区别:
package { import flash.display.Sprite; import flash.text.TextField; public class TextField_condenseWhite extends Sprite { public function TextField_condenseWhite() { var tf1:TextField = createCustomTextField(0, 0, 200, 50); tf1.condenseWhite = false; tf1.htmlText = "keep on\n\ttruckin'"; var tf2:TextField = createCustomTextField(0, 120, 200, 50); tf2.condenseWhite = true; tf2.htmlText = "keep on\n\ttruckin'"; } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; result.border = true; addChild(result); return result; } } }
defaultTextFormat | 属性 |
defaultTextFormat:flash.text:TextFormat
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定应用于新插入文本(例如,用户输入的文本或使用 replaceSelectedText()
方法插入的文本)的格式。
注意:当选择要替换为 setSelection()
和 replaceSelectedText()
的字符时,仅在选择的文本达到和包括最后字符时才会应用 defaultTextFormat
。下面是一个示例:
var my_txt:TextField new TextField(); my_txt.text = "Flash Macintosh version"; var my_fmt:TextFormat = new TextFormat(); my_fmt.color = 0xFF0000; my_txt.defaultTextFormat = my_fmt; my_txt.setSelection(6,15); // partial text selected - defaultTextFormat not applied my_txt.setSelection(6,23); // text selected to end - defaultTextFormat applied my_txt.replaceSelectedText("Windows version");
在访问 defaultTextFormat
属性时,返回的 TextFormat 对象已定义了它的所有属性。所有属性都不为 null
。
注意:如果对文本字段应用了样式表,则不能设置该属性。
实现
public function get defaultTextFormat():flash.text:TextFormat
public function set defaultTextFormat(value:flash.text:TextFormat):void
引发
Error — 此方法不能用于具有样式表的文本字段。
|
相关 API 元素
displayAsPassword | 属性 |
displayAsPassword:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定文本字段是否是密码文本字段。如果此属性的值为 true
,则文本字段被视为密码文本字段,并使用星号而不是实际字符来隐藏输入的字符。如果为 false
,则不会将文本字段视为密码文本字段。启用密码模式时,“剪切”和“复制”命令及其对应的键盘快捷键将不起作用。此安全机制可防止不良用户使用快捷键在无人看管的计算机上破译密码。
默认值为 false。
实现
public function get displayAsPassword():Boolean
public function set displayAsPassword(value:Boolean):void
embedFonts | 属性 |
embedFonts:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定是否使用嵌入字体轮廓进行呈现。如果为 false
,则 Flash Player 使用设备字体呈现文本字段。
如果将文本字段的 embedFonts
属性设置为 true
,则必须使用应用于该文本字段的 TextFormat 对象的 font
属性来指定该文本的字体。如果指定的字体没有嵌入 SWF 文件中,则不会显示该文本。
默认值为 false。
实现
public function get embedFonts():Boolean
public function set embedFonts(value:Boolean):void
相关 API 元素
gridFitType | 属性 |
gridFitType:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
用于此文本字段的网格固定类型。仅在文本字段的 flash.text.AntiAliasType
属性设置为 flash.text.AntiAliasType.ADVANCED
时才应用此属性。
使用的网格固定类型确定了 Flash Player 是否强制让粗水平线和垂直线适合像素网格或子像素网格。
对于 flash.text.GridFitType
属性,您可以使用下列字符串值:
字符串值 | 说明 |
---|---|
flash.text.GridFitType.NONE | 指定无网格固定。不强制根据像素网格调整字型中的水平线和垂直线。建议对动画或大号字使用此设置。 |
flash.text.GridFitType.PIXEL | 指定粗水平线和垂直线适合像素网格。此设置仅适用于左对齐文本字段。要使用此设置,文本字段的 flash.dispaly.AntiAliasType 属性必须设置为 flash.text.AntiAliasType.ADVANCED 。此设置通常能为左对齐文本提供最佳可读性。 |
flash.text.GridFitType.SUBPIXEL | 指定粗水平线和垂直线适合 LCD 显示器上的子像素网格。要使用此设置,文本字段的 flash.text.AntiAliasType 属性必须设置为 flash.text.AntiAliasType.ADVANCED 。flash.text.GridFitType.SUBPIXEL 设置通常适合右对齐或居中的动态文本,有时,为了在动画与文本品质之间达到一种平衡,也可使用此设置。 |
默认值为 pixel。
实现
public function get gridFitType():String
public function set gridFitType(value:String):void
相关 API 元素
示例 ( 如何使用本示例 )
gridFitType
属性设置的三个文本字段。在使用此示例时,请注意前两行在清晰度方面的差异。还要注意用于左对齐文本的 GridFitType.PIXEL
和用于右对齐文本的 GridFitType.SUBPIXEL
的最佳用法。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFieldAutoSize; import flash.text.AntiAliasType; import flash.text.GridFitType; public class gridFitTypeExample extends Sprite { public function gridFitTypeExample() { var format1:TextFormat = new TextFormat(); format1.font="Arial"; format1.size=12; var tf1:TextField = createCustomTextField(0,0,format1,"NONE",TextFieldAutoSize.LEFT,GridFitType.NONE); var tf2:TextField = createCustomTextField(0,30,format1,"PIXEL",TextFieldAutoSize.LEFT,GridFitType.PIXEL); var tf3:TextField = createCustomTextField(300,60,format1,"SUBPIXEL",TextFieldAutoSize.RIGHT,GridFitType.SUBPIXEL); } private function createCustomTextField(x:Number,y:Number,fm:TextFormat,tl:String,tfs:String,gft:String):TextField { var result:TextField = new TextField(); result.x=x; result.y=y; result.embedFonts=true; result.antiAliasType=AntiAliasType.ADVANCED; result.text="This text uses a gridFitType of " + tl; result.autoSize=tfs; result.gridFitType=gft; result.setTextFormat(fm); addChild(result); return result; } } }
htmlText | 属性 |
htmlText:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
包含文本字段内容的 HTML 表示形式。
Flash Player 支持以下 HTML 标签:
标签 | 说明 |
---|---|
锚标签 |
<a> 标签创建超文本链接并支持以下属性:
|
粗体标签 |
<b> 标签以粗体形式呈现文本。粗体必须可用于所使用的字体。
|
换行标签 |
<br> 标签将在文本字段中创建一个换行符。将文本字段设置为多行文本字段以使用此标签。
|
字体标签 |
<font> 标签指定一种字体或一个字体列表来显示文本。字体标签支持以下属性:
|
图像标签 |
使用 <img> 标签可将外部图像文件(JPEG、GIF、PNG)、SWF 文件和影片剪辑嵌入到文本字段中。在文本字段中,文本在嵌入的图像旁自动换行。您必须将文本字段设置为多行才能在图像周围绕排文本。
Flash 以完全大小显示文本字段中嵌入的媒体。要指定嵌入的媒体的尺寸,请使用 通常情况下,文本字段中嵌入的图像显示在 对于应用程序安全沙箱中的 AIR 内容,AIR 会忽略 ActionScript TextField 对象的 HTML 内容中的 |
斜体标签 |
<i> 标签以斜体形式显示标签中的文本。斜体必须可用于所使用的字体。
|
列表项标签 |
<li> 标签在所包含的文本前放置项目符号。注意:因为 Flash Player 和 AIR 无法识别有序和无序列表标签(<ol> 和 <ul> ),所以这些标签无法修改列表的呈现方式。所有列表都是无序的,所有列表项都使用项目符号。
|
段落标签 |
<p> 标签创建一个新段落。必须将文本字段设置为多行文本字段才能使用此标签。<p> 标签支持以下属性:
|
Span 标签 |
<span> 标签只可用于 CSS 文本样式。它支持以下属性:
|
文本格式标签 |
使用
|
下划线标签 |
<u> 标签为标签文本添加下划线。
|
Flash Player 和 AIR 支持以下 HTML 实体:
实体 | 说明 |
---|---|
< | <(小于) |
> | >(大于) |
& | &(and 符) |
" | "(双引号) |
' | '(撇号,单引号) |
Flash Player 和 AIR 还支持显式字符代码,如 &(ASCII 和号)和 €(Unicode € 符号)。
实现
public function get htmlText():String
public function set htmlText(value:String):void
相关 API 元素
示例 ( 如何使用本示例 )
tf1
的 TextField,并将 HTML 格式的字符串赋给其 text
属性。当跟踪其 htmlText
属性时,输出为 HTML 格式的字符串,带有由 Flash Player 自动添加的其他标签(如 <P> 和 <FONT>)。当跟踪 text
属性的值时,将显示不带 HTML 标签的无格式字符串。
为了进行比较,我们对另一个名为 tf2
的 TextField 对象执行了同样的步骤,并在设置 tf2
的 htmlText
属性之前将 StyleSheet 对象赋给它的 styleSheet
属性。在这种情况下,当跟踪 htmlText
属性时,它只包括最初赋给 htmlText
属性的 HTML 文本,说明 Flash Player 没有添加其他标签。
package { import flash.display.Sprite; import flash.text.StyleSheet; import flash.text.TextField; public class TextField_text extends Sprite { public function TextField_text() { var tf1:TextField = createCustomTextField(10, 10, 400, 22); tf1.htmlText = "<b>Lorem ipsum dolor sit amet.</b>"; // htmlText: <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><b>Lorem ipsum dolor sit amet.</b></FONT></P> trace("htmlText: " + tf1.htmlText); // text: Lorem ipsum dolor sit amet. trace("text: " + tf1.text); var tf2:TextField = createCustomTextField(10, 50, 400, 22); tf2.styleSheet = new StyleSheet(); tf2.htmlText = "<b>Lorem ipsum dolor sit amet.</b>"; // htmlText: <b>Lorem ipsum dolor sit amet.</b> trace("htmlText: " + tf2.htmlText); // text: Lorem ipsum dolor sit amet. trace("text: " + tf2.text); } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } }
length | 属性 |
maxChars | 属性 |
maxScrollH | 属性 |
maxScrollV | 属性 |
mouseWheelEnabled | 属性 |
mouseWheelEnabled:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
一个布尔值,表示当用户单击某个文本字段并滚动鼠标滚轮时,Flash Player 是否自动滚动多行文本字段。默认情况下,此值为 true
。如果您想让文本字段在用户滚动鼠标滚轮时不随之滚动,或要实现您自己的文本字段滚动方式,可以使用此属性。
实现
public function get mouseWheelEnabled():Boolean
public function set mouseWheelEnabled(value:Boolean):void
multiline | 属性 |
multiline:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示字段是否为多行文本字段。如果值为 true
,则文本字段为多行文本字段;如果值为 false
,则文本字段为单行文本字段。在类型为 TextFieldType.INPUT
的字段中,multiline
值将确定 Enter
键是否创建新行(如果值为 false
,则将忽略 Enter
键)。如果将文本粘贴到其 multiline
值为 false
的 TextField
中,则文本中将除去新行。
默认值为 false。
实现
public function get multiline():Boolean
public function set multiline(value:Boolean):void
相关 API 元素
numLines | 属性 |
restrict | 属性 |
restrict:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示用户可输入到文本字段中的字符集。如果 restrict
属性的值为 null
,则可以输入任何字符。如果 restrict
属性的值为空字符串,则不能输入任何字符。如果 restrict
属性的值为一串字符,则只能在文本字段中输入该字符串中的字符。从左向右扫描该字符串。可以使用连字符 (-) 指定一个范围。只限制用户交互;脚本可将任何文本放入文本字段中。此属性不与属性检查器中的“嵌入字体”选项同步。
如果字符串以尖号 (^) 开头,则先接受所有字符,然后从接受字符集中排除字符串中 ^ 之后的字符。如果字符串不以尖号 (^) 开头,则最初不接受任何字符,然后将字符串中的字符包括在接受字符集中。
下例仅允许在文本字段中输入大写字符、空格和数字:
my_txt.restrict = "A-Z 0-9";
下例包含除小写字母之外的所有字符:
my_txt.restrict = "^a-z";
可以使用反斜杠输入 ^ 或 - 的本义。认可的反斜杠序列为 \-、\^ 或 \\。反斜杠在字符串中必须是一个本义字符,因此在 ActionScript 中指定时必须使用两个反斜杠。例如,下面的代码只包含短划线 (-) 和尖号 (^):
my_txt.restrict = "\\-\\^";
可在字符串中的任何位置使用 ^,以在包含字符与排除字符之间进行切换。下面的代码只包含除大写字母 Q 之外的大写字母:
my_txt.restrict = "A-Z^Q";
可以使用 \u
转义序列构造 restrict
字符串。下面的代码只包含从 ASCII 32(空格)到 ASCII 126(代字号)之间的字符。
my_txt.restrict = "\u0020-\u007E";
默认值为 null。
实现
public function get restrict():String
public function set restrict(value:String):void
scrollH | 属性 |
scrollH:int
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
当前水平滚动位置。如果 scrollH
属性为 0,则不能水平滚动文本。此属性值是一个以像素为单位表示水平位置的整数。
水平滚动的单位是像素,而垂直滚动的单位是行。水平滚动以像素计量是因为您通常使用的大多数字体都是按比例隔开的;这意味着字符可以有不同的宽度。Flash Player 按行进行垂直滚动是因为用户通常希望看到完整的一行文本,而不是一行的局部。即使一行中包含多种字体,行的高度也会调整到与使用的最大字体相适合。
注意: scrollH
属性是从 0 开始的,不像 scrollV
垂直滚动属性是从 1 开始的。
实现
public function get scrollH():int
public function set scrollH(value:int):void
相关 API 元素
scrollV | 属性 |
scrollV:int
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
文本在文本字段中的垂直位置。scrollV
属性可帮助用户定位到长篇文章的特定段落,还可用于创建滚动文本字段。
垂直滚动的单位是行,而水平滚动的单位是像素。如果显示的第一行是文本字段中的第一行,则 scrollV 设置为 1(而非 0)。水平滚动以像素计量是因为大多数字体都是按比例隔开的;这意味着字符可以有不同的宽度。Flash 按行进行垂直滚动是因为用户通常希望看到完整的一行文本,而不是一行的局部。即使一行上有多种字体,行的高度也会调整到与使用的最大字体相适合。
实现
public function get scrollV():int
public function set scrollV(value:int):void
相关 API 元素
selectable | 属性 |
selectable:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
一个布尔值,表示文本字段是否可选。值 true
表示文本可选。selectable
属性控制文本字段是否可选,而不控制文本字段是否可编辑。动态文本字段即使不可编辑,它也可能是可选的。如果动态文本字段是不可选的,则用户不能选择其中的文本。
如果 selectable
设置为 false
,则文本字段中的文本不响应来自鼠标或键盘的选择命令,并且不能使用“复制”命令复制文本。如果 selectable
设置为 true
,则可以使用鼠标或键盘选择文本字段中的文本,并且可以使用“复制”命令复制文本。即使文本字段是动态文本字段而不是输入文本字段,您也可以用这种方式选择文本。
默认值为 true。
实现
public function get selectable():Boolean
public function set selectable(value:Boolean):void
相关 API 元素
示例 ( 如何使用本示例 )
selectable
属性设置为 true
,另一个文本字段的 selectable
属性设置为 false
。在使用此示例时,请尝试用鼠标或键盘在这些字段中选择文本。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class selectableExample extends Sprite { public function selectableExample() { var tf1:TextField = createCustomTextField(10, 10); tf1.text="This text can be selected"; tf1.selectable=true; var tf2:TextField = createCustomTextField(10, 30); tf2.text="This text cannot be selected"; tf2.selectable=false; } private function createCustomTextField(x:Number, y:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.autoSize=TextFieldAutoSize.LEFT; addChild(result); return result; } } }
selectionBeginIndex | 属性 |
selectionBeginIndex:int
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
当前所选内容中第一个字符从零开始的字符索引值。例如,第一个字符的索引值是 0,第二个字符的索引值是 1,依此类推。如果未选定任何文本,此属性为 caretIndex
的值。
实现
public function get selectionBeginIndex():int
相关 API 元素
示例 ( 如何使用本示例 )
printCursorPosition
方法。在这种情况下,将输出 caretIndex
、selectionBeginIndex
和 selectionEndIndex
属性的值。
运行此示例并尝试在 TextField 中单击以选择文本。然后在字段中单击,但不选择文本。如果在文本中单击但不进行选择,caretIndex
属性将指示在何处出现插入点,而 selectionBeginIndex
和 selectionEndIndex
属性则等于 caretIndex
属性值。
package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.text.TextFieldType; public class TextField_caretIndex extends Sprite { public function TextField_caretIndex() { var tf:TextField = createCustomTextField(10, 10, 100, 100); tf.wordWrap = true; tf.type = TextFieldType.INPUT; tf.text = "Click in this text field. Compare the difference between clicking without selecting versus clicking and selecting text."; tf.addEventListener(MouseEvent.CLICK, printCursorPosition); } private function printCursorPosition(event:MouseEvent):void { var tf:TextField = TextField(event.target); trace("caretIndex:", tf.caretIndex); trace("selectionBeginIndex:", tf.selectionBeginIndex); trace("selectionEndIndex:", tf.selectionEndIndex); } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } }
selectionEndIndex | 属性 |
selectionEndIndex:int
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
当前所选内容中最后一个字符从零开始的字符索引值。例如,第一个字符的索引值是 0,第二个字符的索引值是 1,依此类推。如果未选定任何文本,此属性为 caretIndex
的值。
实现
public function get selectionEndIndex():int
相关 API 元素
示例 ( 如何使用本示例 )
printCursorPosition
方法。在这种情况下,将输出 caretIndex
、selectionBeginIndex
和 selectionEndIndex
属性的值。
运行此示例并尝试在 TextField 中单击以选择文本。然后在字段中单击,但不选择文本。如果在文本中单击但不进行选择,caretIndex
属性将指示在何处出现插入点,而 selectionBeginIndex
和 selectionEndIndex
属性则等于 caretIndex
属性值。
package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.text.TextFieldType; public class TextField_caretIndex extends Sprite { public function TextField_caretIndex() { var tf:TextField = createCustomTextField(10, 10, 100, 100); tf.wordWrap = true; tf.type = TextFieldType.INPUT; tf.text = "Click in this text field. Compare the difference between clicking without selecting versus clicking and selecting text."; tf.addEventListener(MouseEvent.CLICK, printCursorPosition); } private function printCursorPosition(event:MouseEvent):void { var tf:TextField = TextField(event.target); trace("caretIndex:", tf.caretIndex); trace("selectionBeginIndex:", tf.selectionBeginIndex); trace("selectionEndIndex:", tf.selectionEndIndex); } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } }
sharpness | 属性 |
sharpness:Number
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
此文本字段中字型边缘的清晰度。仅在文本字段的 flash.text.AntiAliasType
属性设置为 flash.text.AntiAliasType.ADVANCED
时才应用此属性。sharpness
的范围是从 -400 到 400 的一个数字。如果尝试将 sharpness
设置为该范围外的值,则 Flash 会将该属性设置为范围内最接近的值(-400 或 400)。
默认值为 0。
实现
public function get sharpness():Number
public function set sharpness(value:Number):void
相关 API 元素
示例 ( 如何使用本示例 )
sharpness
属性所产生的效果。您需要嵌入字体并将 antiAliasType
属性设置为 ADVANCED
。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.AntiAliasType; import flash.text.GridFitType; import flash.text.TextFormat; public class sharpnessExample extends Sprite { public function sharpnessExample() { var format1:TextFormat = new TextFormat(); format1.font="Arial"; format1.size=24; var lTxt:String = "The quick brown fox"; var tf1:TextField=createCustomTextField(0,lTxt,format1,-400); var tf2:TextField=createCustomTextField(30,lTxt,format1,0); var tf3:TextField=createCustomTextField(60,lTxt,format1,400); } private function createCustomTextField(y:Number,fldTxt:String,format:TextFormat,fldSharpness:Number):TextField { var result:TextField = new TextField(); result.y=y; result.text=fldTxt; result.embedFonts=true; result.autoSize=TextFieldAutoSize.LEFT; result.antiAliasType=AntiAliasType.ADVANCED; result.gridFitType=GridFitType.PIXEL; result.sharpness=fldSharpness; result..setTextFormat(format); addChild(result); return result; } } }
styleSheet | 属性 |
styleSheet:StyleSheet
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
将样式表附加到文本字段。有关创建样式表的信息,请参阅 StyleSheet 类和《ActionScript 3.0 开发人员指南》。
您可以随时更改与文本字段相关的样式表。如果更改使用中的样式表,会使用新的样式表重绘文本字段。您可以将样式表设置为 null
或 undefined
以删除此样式表。如果删除正在使用的样式表,则不使用样式表重绘文本字段。
注意:如果删除样式表,则 TextField.text
和 TextField.htmlText
的内容都将体现先前由该样式表应用的格式。要保留不带格式的原始 TextField.htmlText
内容,请在删除样式表前将该值保存在变量中。
实现
public function get styleSheet():StyleSheet
public function set styleSheet(value:StyleSheet):void
相关 API 元素
示例 ( 如何使用本示例 )
stylesheet
属性。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.StyleSheet; public class TextStylesheetExample extends Sprite { var myLabel:TextField = new TextField(); var labelText:String = "Hello world."; var newStyle:StyleSheet = new StyleSheet(); public function TextStylesheetExample() { var styleObj:Object = new Object(); styleObj.fontWeight = "bold"; styleObj.color = "#660066"; newStyle.setStyle(".defStyle", styleObj); myLabel.styleSheet=newStyle; myLabel.htmlText=labelText; addChild(myLabel); } } }
text | 属性 |
text:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
作为文本字段中当前文本的字符串。各行之间用回车符('\r'
,即 ASCII 13)分隔。此属性包含文本字段中的无格式文本,不带 HTML 标签。
要获取 HTML 形式的文本,请使用 htmlText
属性。
注意:如果将样式表应用到文本字段,text
属性的内容将按 HTML 解释。
实现
public function get text():String
public function set text(value:String):void
相关 API 元素
示例 ( 如何使用本示例 )
tf1
的 TextField,并将 HTML 格式的字符串赋给其 text
属性。当跟踪其 htmlText
属性时,输出为 HTML 格式的字符串,带有由 Flash Player 自动添加的其他标签(如 <P> 和 <FONT>)。当跟踪 text
属性的值时,将显示不带 HTML 标签的无格式字符串。
为了进行比较,我们对另一个名为 tf2
的 TextField 对象执行了同样的步骤,并在设置 tf2
的 htmlText
属性之前将 StyleSheet 对象赋给它的 styleSheet
属性。在这种情况下,当跟踪 htmlText
属性时,它只包括最初赋给 htmlText
属性的 HTML 文本,说明 Flash Player 没有添加其他标签。
package { import flash.display.Sprite; import flash.text.StyleSheet; import flash.text.TextField; public class TextField_text extends Sprite { public function TextField_text() { var tf1:TextField = createCustomTextField(10, 10, 400, 22); tf1.htmlText = "<b>Lorem ipsum dolor sit amet.</b>"; // htmlText: <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><b>Lorem ipsum dolor sit amet.</b></FONT></P> trace("htmlText: " + tf1.htmlText); // text: Lorem ipsum dolor sit amet. trace("text: " + tf1.text); var tf2:TextField = createCustomTextField(10, 50, 400, 22); tf2.styleSheet = new StyleSheet(); tf2.htmlText = "<b>Lorem ipsum dolor sit amet.</b>"; // htmlText: <b>Lorem ipsum dolor sit amet.</b> trace("htmlText: " + tf2.htmlText); // text: Lorem ipsum dolor sit amet. trace("text: " + tf2.text); } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } }
textColor | 属性 |
textColor:uint
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
文本字段中文本的颜色(采用十六进制格式)。十六进制颜色系统使用六位数表示颜色值。每位数有 16 个可能的值或字符。字符范围从 0 到 9,然后从 A 到 F。例如,黑色是 0x000000
;白色是 0xFFFFFF
。
默认值为 0 (0x000000)。
实现
public function get textColor():uint
public function set textColor(value:uint):void
示例 ( 如何使用本示例 )
textColor
属性更改为 red (0xFF0000
)。
package { import flash.display.Sprite; import flash.text.TextField; public class TextField_textColor extends Sprite { public function TextField_textColor() { var tf:TextField = createCustomTextField(10, 10, 100, 300); tf.text = "This will be red text"; tf.textColor = 0xFF0000; } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; addChild(result); return result; } } }
textHeight | 属性 |
textHeight:Number
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
文本的高度,以像素为单位。
实现
public function get textHeight():Number
相关 API 元素
示例 ( 如何使用本示例 )
trace
语句显示 textWidth
和 textHeight
属性的值。为了进行比较,还会显示 width
和 height
属性。(请注意,看到的 textHeight
和 textWidth
值可能会有所不同,这取决于计算机上所用的字体)。
package { import flash.display.Sprite; import flash.text.TextField; public class TextField_textHeight extends Sprite { public function TextField_textHeight() { var tf:TextField = createCustomTextField(10, 10, 100, 150); tf.text = "Sample text"; trace("textWidth: " + tf.textWidth); // textWidth: 55.75 trace("textHeight: " + tf.textHeight); // textHeight: 13.450000000000001 trace("width: " + tf.width); // width: 100 trace("height: " + tf.height); // height: 150 } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; result.border = true; result.background = true; addChild(result); return result; } } }
textInteractionMode | 属性 |
textWidth | 属性 |
textWidth:Number
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
文本的宽度,以像素为单位。
实现
public function get textWidth():Number
相关 API 元素
示例 ( 如何使用本示例 )
trace
语句显示 textWidth
和 textHeight
属性的值。为了进行比较,还会显示 width
和 height
属性。(请注意,看到的 textHeight
和 textWidth
值可能会有所不同,这取决于计算机上所用的字体)。
package { import flash.display.Sprite; import flash.text.TextField; public class TextField_textHeight extends Sprite { public function TextField_textHeight() { var tf:TextField = createCustomTextField(10, 10, 100, 150); tf.text = "Sample text"; trace("textWidth: " + tf.textWidth); // textWidth: 55.75 trace("textHeight: " + tf.textHeight); // textHeight: 13.450000000000001 trace("width: " + tf.width); // width: 100 trace("height: " + tf.height); // height: 150 } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; result.border = true; result.background = true; addChild(result); return result; } } }
thickness | 属性 |
thickness:Number
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
此文本字段中字型边缘的粗细。仅在 flash.text.AntiAliasType
设置为 flash.text.AntiAliasType.ADVANCED
时才可应用此属性。
thickness
的范围是从 -200 到 200 的一个数字。如果要尝试将 thickness
设置为该范围外的值,则该属性会设置为范围内最接近的值(-200 或 200)。
默认值为 0。
实现
public function get thickness():Number
public function set thickness(value:Number):void
相关 API 元素
示例 ( 如何使用本示例 )
thickness
属性所产生的效果。您需要嵌入字体并将 antiAliasType
属性设置为 ADVANCED
。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.AntiAliasType; import flash.text.GridFitType; import flash.text.TextFormat; public class thicknessExample extends Sprite { public function thicknessExample() { var format1:TextFormat = new TextFormat(); format1.font="Arial"; format1.size=24; var lTxt:String = "The quick brown fox"; var tf1:TextField=createCustomTextField(0,lTxt,format1,-200); var tf2:TextField=createCustomTextField(30,lTxt,format1,0); var tf3:TextField=createCustomTextField(60,lTxt,format1,200); } private function createCustomTextField(y:Number,fldTxt:String,format:TextFormat,fldThickness:Number):TextField { var result:TextField = new TextField(); result.y=y; result.text=fldTxt; result.embedFonts=true; result.autoSize=TextFieldAutoSize.LEFT; result.antiAliasType=AntiAliasType.ADVANCED; result.gridFitType=GridFitType.PIXEL; result.thickness=fldThickness; result.setTextFormat(format); addChild(result); return result; } } }
type | 属性 |
type:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
文本字段的类型。以下 TextFieldType 常量中的任一个:TextFieldType.DYNAMIC
(指定用户无法编辑的动态文本字段),或 TextFieldType.INPUT
(指定用户可以编辑的输入文本字段)。
默认值为 dynamic。
实现
public function get type():String
public function set type(value:String):void
引发
ArgumentError — 指定的 type 不是 flash.text.TextFieldType 的成员。
|
相关 API 元素
示例 ( 如何使用本示例 )
tfDynamic
和 tfInput
。文本输入到两个文本字段中。但是,tfDynamic
将其 type
属性设置为 TextFieldType.DYNAMIC
,而 tfInput
将其 type
属性设置为 TextFieldType.INPUT
,所以用户可以修改 tfInput
中的文本,但只能查看 tfDynamic
中的文本。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; public class TextField_type extends Sprite { public function TextField_type() { var tfDynamic:TextField = createCustomTextField(10, 10, 100, 20); tfDynamic.type = TextFieldType.DYNAMIC; tfDynamic.text = "hello"; var tfInput:TextField = createCustomTextField(10, 45, 100, 20); tfInput.type = TextFieldType.INPUT; tfInput.text = "world"; } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; result.background = true; result.border = true; addChild(result); return result; } } }
useRichTextClipboard | 属性 |
useRichTextClipboard:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
指定在复制和粘贴文本时是否同时复制和粘贴其格式。如果设置为 true
,则在文本字段之间复制和粘贴时,Flash Player 也将复制和粘贴格式设置(例如,对齐方式、粗体和斜体)。复制和粘贴过程中的原始和目标文本字段必须已将 useRichTextClipboard
设置为 true
。默认值为 false
。
实现
public function get useRichTextClipboard():Boolean
public function set useRichTextClipboard(value:Boolean):void
示例 ( 如何使用本示例 )
tf1
) 和两个动态文本字段(tf2
和 tf3
)。代码为每个动态文本字段分配一个 TextFormat 对象(Courier Bold 字体)。tf2
文本字段的 useRichTextClipboard
属性设置为 false
。tf3
文本字段的 useRichTextClipboard
属性设置为 true
。在从 tf2
文本字段复制文本并将其粘贴到 tf1
文本字段中时,粘贴的文本不包括格式。在从 tf3
文本字段(useRichTextClipboard
设置为 true
)复制文本并将其粘贴到 tf1
文本字段中时,粘贴的文本包括格式。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFormat; public class useRichTextClipboard extends Sprite { public function useRichTextClipboard() { var format1:TextFormat = new TextFormat(); format1.font="Courier"; format1.bold=true; var tf1:TextField = createCustomTextField(10, 10, 200, 20); tf1.type=TextFieldType.INPUT; tf1.useRichTextClipboard=true; var tf2:TextField = createCustomTextField(220, 10, 200, 20); tf2.text="1.Text loses format"; tf2.setTextFormat(format1); tf2.useRichTextClipboard=false; var tf3:TextField = createCustomTextField(220, 50, 200, 20); tf3.text="2.Text includes format"; tf3.setTextFormat(format1); tf3.useRichTextClipboard=true; } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; result.background = true; result.border = true; addChild(result); return result; } } }
wordWrap | 属性 |
wordWrap:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
一个布尔值,表示文本字段是否自动换行。如果 wordWrap
的值为 true
,则该文本字段自动换行;如果值为 false
,则该文本字段不自动换行。默认值为 false
。
实现
public function get wordWrap():Boolean
public function set wordWrap(value:Boolean):void
示例 ( 如何使用本示例 )
wordWrap
属性设置为 true
和将其设置为 false
之间的区别。创建两个 TextField 实例,它们的内容对于它们的宽度来说太大。第一个(名为 tfWrap
)的 wordWrap
属性设置为 true
;第二个 (tfNoWrap
) 的此属性设置为 false
。
package { import flash.display.Sprite; import flash.text.TextField; public class TextField_wordWrap extends Sprite { public function TextField_wordWrap() { var tfWrap:TextField = createCustomTextField(10, 10, 100, 100); tfWrap.wordWrap = true; tfWrap.text = "(wordWrap = true):\nThis is very long text that will certainly extend beyond the width of this text field"; var tfNoWrap:TextField = createCustomTextField(10, 150, 100, 100); tfNoWrap.wordWrap = false; tfNoWrap.text = "(wordWrap = false):\nThis is very long text that will certainly extend beyond the width of this text field"; } private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.width = width; result.height = height; result.background = true; result.border = true; addChild(result); return result; } } }
TextField | () | 构造函数 |
public function TextField()
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
创建新的 TextField 实例。在创建 TextField 实例后,调用父 DisplayObjectContainer 对象的 addChild()
或 addChildAt()
方法可将 TextField 实例添加到显示列表中。
文本字段的默认大小是 100 x 100 个像素。
示例 ( 如何使用本示例 )
var theTextField:TextField = new TextField(); theTextField.type = TextFieldType.INPUT; theTextField.border = true; theTextField.x = 10; theTextField.y = 10; theTextField.multiline = true; theTextField.wordWrap = true; addChild(theTextField);
appendText | () | 方法 |
public function appendText(newText:String):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
将 newText
参数指定的字符串追加到文本字段的文本的末尾。此方法要比对 text
属性的加法赋值 (+=
)(如 someTextField.text += moreText
)更有效,对于包含大量内容的文本字段尤其有效。
参数
newText:String — 要追加到现有文本末尾的字符串。
|
示例 ( 如何使用本示例 )
outputText
文本字段被设置为自动适应文本,并使用 autoSize
属性将其调整为左对齐的文本。outputText.text
属性写入第一行内容,并由 appendText()
方法附加其余的内容。(并非必须以 text
属性开头。也可以从一开始就使用 appendText()
方法附加文本。) 第二次设置 text
属性时,将覆盖原始文本。可以使用 +=
运算符通过 text
属性附加内容。
if
语句检查日期是否为星期六 (6) 或星期日 (0)。如果不是,toLocaleTimeString()
方法将返回本地时间,它将附加到文本字段内容中。
文本字段的 length
属性用于读取就在调用函数之前的字符数;而属性 numLines
用于计算文本字段中的行数。请注意,在计算行数时将空行计算在内,并在确定长度内容时将空格和换行符 (\n) 计算在内。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class TextField_appendTextExample extends Sprite { public function TextField_appendTextExample() { var outputText:TextField = new TextField(); var today:Date = new Date(); outputText.x = 10; outputText.y = 10; outputText.background = true; outputText.autoSize = TextFieldAutoSize.LEFT; outputText.text = "WHAT TIME IS IT?" + "\n\n"; if((today.day == 0) || (today.day == 6)) { outputText.appendText("It's the weekend."); outputText.appendText("\n\n"); } else { outputText.appendText("The time is: "); outputText.appendText(today.toLocaleTimeString() + ".\n\n"); } outputText.appendText("Number of characters including line breaks and spaces so far: "); outputText.appendText(outputText.length.toString() + "\n"); outputText.appendText("Number of lines in the outputText: "); outputText.appendText(outputText.numLines.toString()); this.addChild(outputText); } } }
getCharBoundaries | () | 方法 |
public function getCharBoundaries(charIndex:int):Rectangle
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
返回一个矩形,该矩形是字符的边框。
参数
charIndex:int — 从零开始的字符索引值(例如,第一个位置为 0,第二个位置为 1,依此类推)。
|
Rectangle — 一个矩形,具有定义字符边框的 x 和 y 最小值和最大值。
|
相关 API 元素
示例 ( 如何使用本示例 )
getCharBoundaries()
方法标记(产生聚光灯照射效果)用户选择的字符。
该类定义了 spotlight
Shape 对象,该对象用于在每个所选的字符周围绘制一个矩形。当用户单击 myTextField
文本字段时,将调用 clickHandler()
方法。
在 clickHandler()
方法中,getCharIndexAtPoint()
方法基于鼠标单击的 localX
和 localY
坐标来获取所单击的字符的索引,此坐标相对于包含它的 Sprite
。如果该点(鼠标单击)不在任何字符上,getCharIndexAtPoint()
方法将返回 -1
。由于文本字段可能比文本大,因此,应检查返回的整数 (index
) 以确保用户单击了某个字符。getCharBoundaries()
还使用 index
整数来获取用于保存字符边界的 Rectangle
对象。clear()
方法将清除以前显示的所有 spotlight
Shape 对象。将使用返回的 frame
矩形的 x 和 y 坐标,在字符位置生成一个字符宽度和高度边界大小的新矩形,字符位置是相对于 (10, 10) 坐标的偏移。要产生用聚光灯照射字符的效果,请使用黄色填充 spotlight
Shape 对象,并将不透明度设置为 35%,以便能够看到字符。请注意,空格也被视为字符。
package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.geom.Rectangle; import flash.events.MouseEvent; import flash.text.TextFieldAutoSize; import flash.display.Shape; public class TextField_getCharBoundariesExample extends Sprite { private var myTextField:TextField = new TextField(); private var spotlight:Shape = new Shape(); public function TextField_getCharBoundariesExample() { myTextField.x = 10; myTextField.y = 10; myTextField.border = true; myTextField.selectable = false; myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.text = "Selected a character from this text by clicking on it." myTextField.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(myTextField); this.addChild(spotlight); } private function clickHandler (e:MouseEvent):void { var index:int = myTextField.getCharIndexAtPoint(e.localX, e.localY); if (index != -1) { var frame:Rectangle = myTextField.getCharBoundaries(index); spotlight.graphics.clear(); spotlight.graphics.beginFill(0xFFFF00, .35); spotlight.graphics.drawRect((frame.x + 10), (frame.y + 10), frame.width, frame.height); spotlight.graphics.endFill(); } } } }
getCharIndexAtPoint | () | 方法 |
public function getCharIndexAtPoint(x:Number, y:Number):int
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在 x
和 y
参数指定的位置返回从零开始的字符索引值。
参数
x:Number — 字符的 x 坐标。
| |
y:Number — 字符的 y 坐标。
|
int — 从零开始的字符索引值(例如,第一个位置为 0,第二个位置为 1,依此类推)。如果该位置没有任何字符,则返回 -1。
|
示例 ( 如何使用本示例 )
第一个文本字段用于保存用户将要选择的文本。为了确保单击该文本而没有将其选定,请将 selectable
属性设置为 false。当用户单击 firstTextField
文本字段时,将调用 clickHandler()
方法。
在 clickHandler()
方法中,getCharIndexAtPoint()
方法基于鼠标单击的 localX
和 localY
坐标来返回字符的索引。由于文本字段可能比文本大,因此,应检查返回整数 (index
) 以确保用户单击了某个字符。(如果该点(鼠标单击)不在某个字符上,getCharIndexAtPoint()
方法将返回 -1
。)鼠标坐标用于设置显示回显字符的新文本字段的坐标。第二个文本字段中的字符颜色设置为红色。最后,第二个字段中的文本设置为选定的字符,它是使用 charAt()
方法检索的。请注意,如果使用 text
属性而不是 appendText()
方法,则会覆盖第二个文本字段中的字符,而不是进行附加。
package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.geom.Rectangle; import flash.events.MouseEvent; import flash.text.TextFieldAutoSize; public class TextField_getCharIndexAtPointExample extends Sprite { private var firstTextField:TextField = new TextField(); private var secondTextField:TextField = new TextField(); public function TextField_getCharIndexAtPointExample() { firstTextField.x = 100; firstTextField.y = 100; firstTextField.width = 260; firstTextField.height = 20; firstTextField.border = true; firstTextField.background = true; firstTextField.selectable = false; firstTextField.text = "Selected a character from this text by clicking on it." firstTextField.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(firstTextField); this.addChild(secondTextField); } private function clickHandler (e:MouseEvent):void { var index:int = firstTextField.getCharIndexAtPoint(e.localX, e.localY); if (index != -1) { secondTextField.x = mouseX; secondTextField.y = 70; secondTextField.border = true; secondTextField.selectable = false; secondTextField.background = true; secondTextField.textColor = 0xFF0000; secondTextField.autoSize = TextFieldAutoSize.LEFT; secondTextField.text = firstTextField.text.charAt(index); } } } }
getFirstCharInParagraph | () | 方法 |
public function getFirstCharInParagraph(charIndex:int):int
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
如果给定一个字符索引,则返回同一段落中第一个字符的索引。
参数
charIndex:int — 从零开始的字符索引值(例如,第一个字符的索引值是 0,第二个字符的索引值是 1,依此类推)。
|
int — 同一段落中从零开始的第一个字符索引值。
|
引发
RangeError — 指定的字符索引超出范围。
|
示例 ( 如何使用本示例 )
在构造函数中,将 myTextField
文本字段设置为文本换行。getTextFormat
方法返回文本字段内容中的第一个字符的原始格式,此格式放置在 originalFormat
TextFormat 对象中。还定义了一个新的 TextFormat 对象 (newFormat
),并将其 align
属性指定为右对齐。当用户单击文本字段时,将调用 clickHandler()
方法。
在 clickHandler()
方法中,getCharIndexAtPoint()
方法基于鼠标单击的 localX
和 localY
坐标来返回字符的索引。第一条 if
语句检查以确定用户是否已单击了某个字符。通过使用由 getCharIndexAtPoint()
方法返回的 clickIndex
整数,getFirstCharInParagraph()
方法将返回用户单击的段落中的第一个字符的索引。段落中的最后一个字符的索引是使用以下方法确定的:将段落中的第一个字符的索引与段落长度(使用 getParagraphLength()
方法)相加,然后减去最后一个字符 (\n
)。第二条 if
语句检查段落中的第一个字符的格式。如果其对齐方式值与原始格式(左对齐)相同,则将新格式应用于段落中的所有字符。否则,将段落格式重新设置为原始格式。对齐方式以及格式(如缩进、项目符号、Tab 停靠位、左和右边距)都是用于段落的格式。请注意,在使用自动换行或换行符后,如果没有为 setTextFormat()
方法定义 endIndex
参数,该格式仅适用于段落的第一行。
package { import flash.display.Sprite; import flash.text.TextField; import flash.events.MouseEvent; import flash.text.TextFormat; import flash.text.TextFormatAlign; public class TextField_getFirstCharInParagraphExample extends Sprite { private var myTextField:TextField = new TextField(); private var originalFormat:TextFormat = new TextFormat(); private var newFormat:TextFormat = new TextFormat(); public function TextField_getFirstCharInParagraphExample() { myTextField.x = 10; myTextField.y = 10; myTextField.border = true; myTextField.wordWrap = true; myTextField.width = 300; myTextField.height = 300; myTextField.background = true; myTextField.appendText("The TextField class is used to create display objects for " + "text display and input. All dynamic and input text fields in a SWF file " + "are instances of the TextField class. You can use the TextField class " + "to perform low-level text rendering. However, in Flex, you typically use " + "the Label, Text, TextArea, and TextInput controls to process text. " + "You can give a text field an instance name in the Property inspector " + "and use the methods and properties of the TextField class to manipulate it with ActionScript. " + "TextField instance names are displayed in the Movie Explorer and in the Insert " + "Target Path dialog box in the Actions panel.\n\n" + "To create a text field dynamically, use the TextField constructor.\n\n" + "The methods of the TextField class let you set, select, and manipulate " + "text in a dynamic or input text field that you create during authoring or at runtime.\n\n"); originalFormat = myTextField.getTextFormat(0); newFormat.align = TextFormatAlign.RIGHT; myTextField.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(myTextField); } private function clickHandler(e:MouseEvent):void { var clickIndex:int = myTextField.getCharIndexAtPoint(e.localX, e.localY); if(clickIndex != -1) { var paragraphFirstIndex:int = myTextField.getFirstCharInParagraph(clickIndex); var paragraphEndIndex:int = paragraphFirstIndex + ((myTextField.getParagraphLength(clickIndex) - 1)); if (myTextField.getTextFormat(paragraphFirstIndex).align == originalFormat.align) { myTextField.setTextFormat(newFormat, paragraphFirstIndex, paragraphEndIndex); }else { myTextField.setTextFormat(originalFormat, paragraphFirstIndex, paragraphEndIndex); } } } } }
getImageReference | () | 方法 |
public function getImageReference(id:String):DisplayObject
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
返回给定 id
或已使用 <img>
标签添加到 HTML 格式文本字段中的图像或 SWF 文件的 DisplayObject 引用。<img>
标签的格式如下:
<img src = 'filename.jpg' id = 'instanceName' >
参数
id:String — 要匹配的 id (在 <img> 标签的 id 属性中)。
|
DisplayObject — 与图像或 SWF 文件(在文本字段的 <img> 标签中具有匹配 id 属性)对应的显示对象。对于从外部源加载的媒体,此对象是 Loader 对象,加载后,媒体对象是该 Loader 对象的子项。对于在 SWF 文件中嵌入的媒体,这是加载的对象。如果不存在具有匹配 id 的 <img> 标签,则此方法会返回 null 。
|
相关 API 元素
示例 ( 如何使用本示例 )
此图像 (image.jpg
) 是通过 HTML 包括的。(此处,假定图像文件位于与 SWF 文件相同的目录中。)为了使用 getImageReference()
方法访问该图像,您需要为 img
标签定义 id
属性。htmlText
属性用于包括 HTML 格式的字符串内容。当用户单击 myTextField
文本字段时,将调用 clickHandler()
方法。
在 clickHandler()
方法中,getImageReference()
方法将对图像的引用作为 DisplayObject
返回。可以使用此引用来处理图像,就像任何 DisplayObject
对象一样。此处,设置了 alpha
(透明度)和 rotation
属性。还可以使用 transform
属性访问显示对象的矩阵、颜色转换和像素范围。另请注意,需要导入 flash.display.DisplayObject
。
package { import flash.display.Sprite; import flash.text.TextField; import flash.events.Event; import flash.events.MouseEvent; import flash.display.DisplayObject; import flash.text.TextFieldAutoSize; public class TextField_getImageReferenceExample extends Sprite { private var myTextField:TextField = new TextField(); public function TextField_getImageReferenceExample() { var myText1:String = "<p>Here is an image we want to mainpulate: <img src='image.jpg' id='testimage'></p>"; myTextField.x = 10; myTextField.y = 10; myTextField.width = 250; myTextField.height = 250; myTextField.background = true; myTextField.border = true; myTextField.border = true; myTextField.multiline = true; myTextField.htmlText = myText1; myTextField.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(myTextField); } private function clickHandler(e:MouseEvent):void { var imageRef:DisplayObject = myTextField.getImageReference("testimage"); imageRef.rotation += 90; imageRef.x = 125; imageRef.y = 125; imageRef.alpha = 0.25; } } }
getLineIndexAtPoint | () | 方法 |
public function getLineIndexAtPoint(x:Number, y:Number):int
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在 x
和 y
参数指定的位置返回从零开始的行索引值。
参数
x:Number — 行的 x 坐标。
| |
y:Number — 行的 y 坐标。
|
int — 从零开始的行索引值(例如,第一行的索引值是 0,第二行的索引值是 1,依此类推)。如果该位置没有任何行,则返回 -1。
|
示例 ( 如何使用本示例 )
在构造函数中,将 poem
文本字段设置为不换行(因为它是一首诗)。还使用 autoSize
属性将文本设置为自动适应,并让其调整为左对齐的文本; 并将 poemCopy
文本字段放在 poem
文本字段下面。当用户单击诗歌的某一行时,将调用 clickHandler()
方法。
在 clickHandler()
方法中,getLineIndexAtPoint()
方法基于鼠标单击的 localX
和 localY
坐标返回用户已单击的位置的行索引。(由于原始诗歌适合此处的文本字段大小,因此,不需要检查由 getCharIndexAtPoint()
方法引发的超出范围错误 (RangeError
)。)接下来,使用行索引获取该行的内容(作为 getLineText()
方法中的字符串),然后将其附加到 poemCopy
文本字段内容中。可以连续进行复制,但在某一时刻后,文本将超出可查看的 poemCopy
文本字段范围之外。
package { import flash.display.Sprite; import flash.text.TextField; import flash.events.MouseEvent; import flash.text.TextFormat; import flash.text.TextFieldAutoSize; public class TextField_getLineIndexAtPointExample extends Sprite { private var poem:TextField = new TextField(); private var poemCopy:TextField = new TextField(); public function TextField_getLineIndexAtPointExample() { poem.border = true; poem.autoSize = TextFieldAutoSize.LEFT; poem.x = 10; poem.wordWrap = false; poemCopy.height = 250; poemCopy.width = 270; poemCopy.y = 230; poemCopy.x = 10; poemCopy.background = true; poemCopy.border = true; poemCopy.wordWrap = false; poem.appendText("Let me not to the marriage of true minds\n" + "Admit impediments. love is not love\n" + "Which alters when it alteration finds\n" + "Or bends with the remover to remove:\n" + "O no! it is an ever-fixed mark\n" + "That looks on tempests and is never shaken;\n" + "It is the star to every wandering bark,\n" + "Whose worth's unknown, although his height be taken.\n" + "Love's not Time's fool, though rosy lips and cheeks\n" + "Within his bending sickle's compass come:\n" + "Love alters not with his brief hours and weeks,\n" + "But bears it out even to the edge of doom.\n" + "If this be error and upon me proved,\n" + "I never writ, nor no man ever loved."); poem.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(poem); this.addChild(poemCopy); } private function clickHandler(e:MouseEvent):void { var index:int = poem.getLineIndexAtPoint(e.localX, e.localY); var s:String; s = poem.getLineText(index); poemCopy.appendText(s + "\n"); } } }
getLineIndexOfChar | () | 方法 |
public function getLineIndexOfChar(charIndex:int):int
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
返回 charIndex
参数指定的字符所在的行的索引值(从零开始)。
参数
charIndex:int — 从零开始的字符索引值(例如,第一个字符的索引值是 0,第二个字符的索引值是 1,依此类推)。
|
int — 从零开始的行索引值。
|
引发
RangeError — 指定的字符索引超出范围。
|
示例 ( 如何使用本示例 )
getLineIndexOfChar()
方法返回文本字段中的第 100 个和第 500 个字符的行号。
我们将 myTextField
文本字段定义为换行并调整为左对齐的文本。getLineIndexOfChar()
方法返回指定的字符索引(100 和 500)的行索引。然后,将此信息附加到段落后面。请注意,由于行索引从 0 开始,因此,将行索引 (index
) 增加 1 可得出行号。另外,如果调整显示方式,行号可能会发生改变,但此处的信息保持不变,因为只调用一次该方法。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class TextField_getLineIndexOfCharExample extends Sprite { public function TextField_getLineIndexOfCharExample() { var myTextField:TextField = new TextField(); myTextField.x = 10; myTextField.y = 10; myTextField.width = 200; myTextField.background = true; myTextField.border = true; myTextField.wordWrap = true; myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.appendText("The TextField class is used to create display objects for " + "text display and input. All dynamic and input text fields in a SWF file" + "are instances of the TextField class. You can use the TextField class " + "to perform low-level text rendering. However, in Flex, you typically use " + "the Label, Text, TextArea, and TextInput controls to process text. " + "You can give a text field an instance name in the Property inspector " + "and use the methods and properties of the TextField class to manipulate it with ActionScript. " + "TextField instance names are displayed in the Movie Explorer and in the Insert " + "Target Path dialog box in the Actions panel.\n\n"); var index:int = myTextField.getLineIndexOfChar(100); myTextField.appendText("100th character is in line: " + (index + 1) + "\n"); index = myTextField.getLineIndexOfChar(500); myTextField.appendText("500th character is in line: " + (index + 1)); this.addChild(myTextField); } } }
getLineLength | () | 方法 |
public function getLineLength(lineIndex:int):int
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
返回特定文本行中的字符数。
参数
lineIndex:int — 需要其长度的行号。
|
int — 行中的字符数。
|
引发
RangeError — 指定的行号超出范围。
|
示例 ( 如何使用本示例 )
为了便于说明,我们将 myTextField
文本字段(显示将要计算的文本)设置为 INPUT
,这意味着用户可以实际更改行,或者在行之间或结尾处添加行。(通过使用换行符 (\n
),在最后一行的结尾处创建了一个空行。)在 myTextField
文本字段下面设置了 countLines
文本字段(其中显示行长度的计算结果),但无法选择该字段中的文本。当用户单击 myTextField
文本字段中的某一行时,将调用 clickHandler()
方法。
在 clickHandler()
方法中,getLineIndexAtPoint()
方法通过使用鼠标单击的 localX
和 localY
坐标来返回用户所单击的位置的行索引。if
语句检查以确定用户是否已单击了某个字符。如果是,getLineLength()
方法将使用行索引返回行中的字符数。请注意,行之间的空行包含第二个换行符 (\n
) 并计为 1 个字符;而最后一行后面的空行计为 0 个字符。空格也计为一个字符。用户可以编写新的行或更改某一行,也可以单击某一行以获取其字符数。如果使用文本换行并调整屏幕大小,行索引可能会发生变化。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.events.Event; import flash.events.MouseEvent; public class TextField_getLineLengthExample extends Sprite { private var myTextField:TextField = new TextField(); private var countLines:TextField = new TextField(); public function TextField_getLineLengthExample() { myTextField.x = 10; myTextField.y = 10; myTextField.width = 350; myTextField.height = 150; myTextField.background = true; myTextField.border = true; myTextField.type = TextFieldType.INPUT; myTextField.appendText("Click on the lines to count its number of characters:\n\n"); myTextField.appendText("This is a short line.\n"); myTextField.appendText("This is a longer line than the last line.\n\n"); myTextField.appendText("This one is even longer than the one before. It has two sentences.\n"); this.addChild(myTextField); countLines.border = true; countLines.x = 10; countLines.y = 180; countLines.height = 30; countLines.width = 200; countLines.background = true; countLines.selectable = false; this.addChild(countLines); myTextField.addEventListener(MouseEvent.CLICK, clickHandler); } private function clickHandler(e:MouseEvent):void { var index:int = myTextField.getLineIndexAtPoint(e.localX, e.localY); if (index != -1) { var lenght:int = myTextField.getLineLength(index); countLines.text = "Number of characters in the line is: " + lenght.toString(); } } } }
getLineMetrics | () | 方法 |
public function getLineMetrics(lineIndex:int):flash.text:TextLineMetrics
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
返回给定文本行的度量信息。
参数
lineIndex:int — 需要相关度量信息的行号。
|
flash.text:TextLineMetrics — 一个 TextLineMetrics 对象。
|
引发
RangeError — 指定的行号超出范围。
|
相关 API 元素
示例 ( 如何使用本示例 )
附加的文本选自 Walt Whitman 的诗歌 Song of Myself 中的两行。使用了一个新的 TextFormat 对象 (newFormat
) 来设置第二行的格式。第一行保留默认格式。getLineMetrics()
方法返回特定行的 TextLineMetrics
对象。(行索引从 0 开始。) 通过分别使用第 1 行和第 2 行的 metrics1
和 metrics2
TextLineMetrics 对象,可以检索并显示这两行的 ascent、descent、height 和 weight 值。结果数字将转换为字符串,而不进行舍入。请注意,该值用于行而不是特定字符。它反映了某一行的字符范围。例如,如果某一行中包含各种具有不同高度格式的字符,则由高度最高的字符确定该值。这也意味着,如果其中一个字符的格式发生变化,某些度量值也可能会发生变化。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextLineMetrics; import flash.text.TextFieldAutoSize; import flash.text.AntiAliasType; import flash.text.TextFormat; public class TextField_getLineMetricsExample extends Sprite { public function TextField_getLineMetricsExample() { var myTextField:TextField = new TextField(); var newFormat:TextFormat = new TextFormat(); myTextField.x = 10; myTextField.y = 10; myTextField.background = true; myTextField.wordWrap = false; myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.appendText("A child said What is the grass? fetching it to me with full hands;\n"); myTextField.appendText("How could I answer the child? I do not know what it is any more than he.\n\n"); newFormat.size = 14; newFormat.font = "Arial"; newFormat.italic = true; myTextField.setTextFormat(newFormat, 67, 139); var metrics1:TextLineMetrics = myTextField.getLineMetrics(0); myTextField.appendText("Metrics ascent for the line 1 is: " + metrics1.ascent.toString() + "\n"); myTextField.appendText("Metrics descent is: " + metrics1.descent.toString() + "\n"); myTextField.appendText("Metrics height is: " + metrics1.height.toString() + "\n"); myTextField.appendText("Metrics width is: " + metrics1.width.toString() + "\n\n"); var metrics2:TextLineMetrics = myTextField.getLineMetrics(1); myTextField.appendText("Metrics ascent for the line 2 is: " + metrics2.ascent.toString() + "\n"); myTextField.appendText("Metrics descent is: " + metrics2.descent.toString() + "\n"); myTextField.appendText("Metrics height is: " + metrics2.height.toString() + "\n"); myTextField.appendText("Metrics width is: " + metrics2.width.toString() + "\n"); addChild(myTextField); } } }
getLineOffset | () | 方法 |
public function getLineOffset(lineIndex:int):int
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
返回 lineIndex
参数指定的行中第一个字符的字符索引。
参数
lineIndex:int — 从零开始的行索引值(例如,第一行的索引值是 0,第二行的索引值是 1,依此类推)。
|
int — 行中第一个字符的索引值(从零开始)。
|
引发
RangeError — 指定的行号超出范围。
|
示例 ( 如何使用本示例 )
我们将 myTextField
文本字段设置为自动换行。countField
文本字段将显示第 4 行中的第一个字符。当用户单击 myTextField
文本字段时,将调用 clickHandler()
方法。
在 clickHandler()
方法中,getLineOffset()
方法返回行索引 3(第 4 个文本行)中的第一个字符的索引。(第 1 行包含索引 0。) 我们使用 charAt()
方法以及第 4 行中的第一个字符的索引来获取字符; 并通过 countField
文本字段的 text
属性使用此信息更新 countField
文本字段内容。使用 countField.text
属性意味着,每次单击后,将会覆盖 countField
文本字段的内容。如果用户调整了显示方式,内容将会换行,第 4 行中的第一个字符可能会发生变化。通过再次单击 myTextField
字段,将使用第 4 行中的第一个字符(新字符)更新 countField
文本字段的内容。
package { import flash.display.Sprite; import flash.text.TextField; import flash.events.MouseEvent; public class TextField_getLineOffsetExample extends Sprite { private var myTextField:TextField = new TextField(); private var countField:TextField = new TextField(); public function TextField_getLineOffsetExample() { myTextField.x = 10; myTextField.y = 10; myTextField.width = 150; myTextField.height = 300; myTextField.background = true; myTextField.border = true; myTextField.wordWrap = true; countField.height = 20; countField.width = 200; countField.x = 10; countField.y = 320; countField.selectable = false; myTextField.appendText("The TextField class is used to create display objects for " + "text display and input. All dynamic and input text fields in a SWF file " + "are instances of the TextField class. You can use the TextField class " + "to perform low-level text rendering. However, in Flex, you typically use " + "the Label, Text, TextArea, and TextInput controls to process text. " + "You can give a text field an instance name in the Property inspector " + "and use the methods and properties of the TextField class to manipulate it with ActionScript."); myTextField.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(myTextField); this.addChild(countField); } private function clickHandler(e:MouseEvent):void { var c:String; var index:int; index = myTextField.getLineOffset(3); c = myTextField.text.charAt(index); countField.text = "The first character of line 4 is: " + c; } } }
getLineText | () | 方法 |
public function getLineText(lineIndex:int):String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
返回 lineIndex
参数指定的行的文本。
参数
lineIndex:int — 从零开始的行索引值(例如,第一行的索引值是 0,第二行的索引值是 1,依此类推)。
|
String — 指定行中包含的文本字符串。
|
引发
RangeError — 指定的行号超出范围。
|
示例 ( 如何使用本示例 )
我们将 poem
文本字段设置为自动适应文本并调整为左对齐的文本;并将 wordWrap
属性设置为 false
,诗歌不会换行(但通常是在使用 autoSize
属性时),因而不会出现问题。for
循环使用文本字段的 numLines
属性循环访问十四行诗中的各行。getLineText()
方法将行内容作为字符串返回。(请注意,numLines
属性从第 1 行开始返回行数;而对于 getLineText()
方法,行号从 0 开始。)通过使用正则表达式模式 (/love/i
),if
语句查找词的任何子字符串(大写或小写)。如果找到该模式,search
方法将返回第一个匹配的子字符串的索引,否则,它返回 -1
(如果不匹配)。然后,将找到“love”一词的行号 ((i + 1)
) 放在字符串 lineResult
中。只要另一个参数是字符串 (" "),此字符串方法就会将数字参数 ((i + 1)
) 转换为字符串。搜索的行结果将包含具有“loved”或“Love's”一词的行。如果字符串“Love was found in lines:”是在 for
循环之前附加的,则也会包括此行中的“Love”一词。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.utils.Timer; import flash.events.TimerEvent; public class TextField_getLineTextExample extends Sprite { public function TextField_getLineTextExample() { var poem:TextField = new TextField(); var lineResult:String = ""; var pattern:RegExp = /love/i; poem.x = 10; poem.y = 10; poem.background = true; poem.wordWrap = false; poem.autoSize = TextFieldAutoSize.LEFT; poem.text = "Let me not to the marriage of true minds\n" + "Admit impediments. love is not love\n" + "Which alters when it alteration finds\n" + "Or bends with the remover to remove:\n" + "O no! it is an ever-fixed mark\n" + "That looks on tempests and is never shaken;\n" + "It is the star to every wandering bark,\n" + "Whose worth's unknown, although his height be taken.\n" + "Love's not Time's fool, though rosy lips and cheeks\n" + "Within his bending sickle's compass come:\n" + "Love alters not with his brief hours and weeks,\n" + "But bears it out even to the edge of doom.\n" + "If this be error and upon me proved,\n" + "I never writ, nor no man ever loved.\n\n"; for (var i:int = 0; i < poem.numLines; i++) { var s:String = poem.getLineText(i); if(s.search(pattern) != -1) { lineResult += (i + 1) + " "; } } poem.appendText("Love was found in lines: " + lineResult); this.addChild(poem); } } }
getParagraphLength | () | 方法 |
public function getParagraphLength(charIndex:int):int
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
如果给定一个字符索引,则返回包含给定字符的段落的长度。长度与段落中的第一个字符(由 getFirstCharInParagraph()
返回)有关,与传入的字符索引无关。
参数
charIndex:int — 从零开始的字符索引值(例如,第一个字符的索引值是 0,第二个字符的索引值是 1,依此类推)。
|
int — 返回段落中的字符数。
|
引发
RangeError — 指定的字符索引超出范围。
|
相关 API 元素
示例 ( 如何使用本示例 )
myTextField
文本字段显示用户将选择的段落。当用户单击该文本字段时,将调度 MouseEvent.CLICK
事件并调用 clickHandler()
方法。段落长度和“s”字符数将显示在 countField
文本字段中,该字段位于 myTextField
文本字段下面。
在 clickHandler()
方法中,getCharIndexAtPoint()
方法基于鼠标单击的 localX
和 localY
坐标来返回字符的索引。第一条 if
语句检查以确定用户是否已单击了某个字符。getFirstCharInParagraph()
方法使用此索引返回相同段落中的第一个字符的索引。可以将 getParagraphLength()
方法返回的段落长度与段落中第一个字符的索引配合使用来确定段落结尾的索引。for
循环将循环访问段落以查找“s”字符数。
package { import flash.display.Sprite; import flash.text.TextField; import flash.events.MouseEvent; public class TextField_getParagraphLengthExample extends Sprite { private var myTextField:TextField = new TextField(); private var countField:TextField = new TextField(); public function TextField_getParagraphLengthExample() { myTextField.x = 10; myTextField.y = 10; myTextField.background = true; myTextField.border = true; myTextField.wordWrap = true; myTextField.width = 300; myTextField.height = 280; myTextField.appendText("The TextField class is used to create display objects for " + "text display and input. All dynamic and input text fields in a SWF file" + "are instances of the TextField class. You can use the TextField class " + "to perform low-level text rendering. However, in Flex, you typically use " + "the Label, Text, TextArea, and TextInput controls to process text. " + "You can give a text field an instance name in the Property inspector " + "and use the methods and properties of the TextField class to manipulate it with ActionScript. " + "TextField instance names are displayed in the Movie Explorer and in the Insert " + "Target Path dialog box in the Actions panel.\n\n" + "To create a text field dynamically, use the TextField() constructor.\n\n" + "The methods of the TextField class let you set, select, and manipulate " + "text in a dynamic or input text field that you create during authoring or at runtime."); myTextField.addEventListener(MouseEvent.CLICK, clickHandler); countField.x = 10; countField.y = 300; countField.height = 50; countField.width = 250; countField.background = true; countField.selectable = false; this.addChild(myTextField); this.addChild(countField); } private function clickHandler(e:MouseEvent):void { var index:int = myTextField.getCharIndexAtPoint(e.localX, e.localY); if(index != -1) { var beginParag:int = myTextField.getFirstCharInParagraph(index); var paragLength:int = myTextField.getParagraphLength(index); var endParag:int = beginParag + paragLength; var sCount:uint = 0; for (var i:int = beginParag; i <= endParag; i++) { if ((myTextField.text.charAt(i) == "s") || (myTextField.text.charAt(i) == "S")) { sCount++; } countField.text = "Paragraph length is: " + paragLength.toString() + "\n" + "Number of 's' characters in the paragraph: " + sCount.toString(); } } } } }
getTextFormat | () | 方法 |
public function getTextFormat(beginIndex:int = -1, endIndex:int = -1):flash.text:TextFormat
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
返回 TextFormat 对象,其中包含 beginIndex
和 endIndex
参数指定的文本范围的格式信息。在生成的 TextFormat 对象中,只设置指定的整个文本共有的属性。所有混合型属性(意味着它在文本中的不同位置有不同的值)的值都为 null
。
如果没有为这些参数指定值,则此方法适用于文本字段中的所有文本。
下表描述三种可能的用法:
用法 | 说明 |
---|---|
my_textField.getTextFormat() | 返回一个 TextFormat 对象,该对象包含文本字段中所有文本的格式设置信息。在结果 TextFormat 对象中只设置文本字段中所有文本共有的属性。所有混合型属性(意味着它在文本中的不同位置有不同的值)的值都为 null 。 |
my_textField.getTextFormat(beginIndex:Number) | 返回一个 TextFormat 对象,其中包含 beginIndex 位置处字符的文本格式的一个副本。 |
my_textField.getTextFormat(beginIndex:Number,endIndex:Number) | 返回一个 TextFormat 对象,该对象包含从 beginIndex 到 endIndex-1 范围内文本的格式设置信息。在结果 TextFormat 对象中只设置特定范围内所有文本共有的属性。所有混合型属性(也就是说,在该范围内的不同位置有不同的值)的值都设置为 null 。 |
参数
beginIndex:int (default = -1 ) — 可选;一个指定文本字段中某段文本起始位置的整数。
| |
endIndex:int (default = -1 ) — 可选;一个整数,指定所需文本范围后面的第一个字符的位置。正如所设计的一样,如果指定 beginIndex 和 endIndex 值,则读取从 beginIndex 到 endIndex-1 的文本。
|
flash.text:TextFormat — 表示指定文本格式设置属性的 TextFormat 对象。
|
引发
RangeError — 指定的 beginIndex 或 endIndex 超出范围。
|
相关 API 元素
示例
如何使用本示例
有关如何使用
getTextFormat()
方法的说明,请参阅 getFirstCharInParagraph() 或 setTextFormat() 方法示例。
isFontCompatible | () | 方法 |
public static function isFontCompatible(fontName:String, fontStyle:String):Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
如果具有指定的 fontName
和 fontStyle
(其中 Font.fontType
为 flash.text.FontType.EMBEDDED
)的嵌入字体可用,则将返回 true。从 Flash Player 10 开始,两种嵌入字体可显示在 SWF 文件中。标准的嵌入字体只能与 TextField 对象一起使用。CFF 嵌入字体只能与 flash.text.engine 类一起使用。这两种类型由 enumerateFonts()
函数返回的 Font
类的 fontType
属性加以区分。
TextField 不能使用类型为 EMBEDDED_CFF
的字体。如果 embedFonts
设置为 true
并且运行时唯一可用的具有指定名称和样式的字体的类型为 EMBEDDED_CFF
,则 Flash Player 将无法呈现文本,就如同没有任何可用的具有指定名称和样式的嵌入字体。
如果具有相同名称和样式的 EMBEDDED
和 EMBEDDED_CFF
字体可用,则将选择 EMBEDDED
字体并使用 EMBEDDED
字体呈现文本。
参数
fontName:String — 要检查的嵌入字体的名称。
| |
fontStyle:String — 指定要检查的字体样式。使用 flash.text.FontStyle
|
Boolean — 如果兼容的嵌入字体可用,则为 true ;否则为 false 。
|
引发
ArgumentError — 指定的 fontStyle 不是 flash.text.FontStyle 的成员。
|
相关 API 元素
replaceSelectedText | () | 方法 |
public function replaceSelectedText(value:String):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
使用 value
参数的内容替换当前所选内容。使用当前默认字符格式和默认段落格式,在当前所选内容的所在位置插入文本。不将该文本视为 HTML。
可以使用 replaceSelectedText()
方法插入和删除文本,而不破坏其余文本的字符和段落格式。
注意:如果已对文本字段应用了样式表,则此方法不起作用。
参数
value:String — 要替换当前所选文本的字符串。
|
引发
Error — 此方法不能用于具有样式表的文本字段。
|
相关 API 元素
示例 ( 如何使用本示例 )
我们创建了两个不同的 TextField 对象,并为 MouseEvent.MOUSE_UP
事件添加了事件侦听器。当用户松开鼠标时,鼠标将弹起;在选择文本后,通常会发生这种事件。请注意,文本字段的默认设置是选择其文本。
在 mouseHandler1()
方法中,当用户在 myTextField1
文本字段中松开鼠标时,将删除该文本并替换为空字符串。此操作可能会继续进行,直至删除所有文本时为止。在 mouseHandler2()
方法中,当用户在 myTextField2
文本字段中选择某些文本时,将检查 selectionBeginIndex
和 selectionEndIndex
属性以确定是否选择了任何字符。(如果选择了某些文本,selectionBeginIndex
和 selectionEndIndex
属性不会具有相同的值。) 然后,将所选文本替换为“NEW TEXT”字符串。此操作可能会继续进行,直至将第二个文本字段的所有原始文本替换为“NEW TEXT”字符串时为止。
package { import flash.display.Sprite; import flash.text.TextField; import flash.events.MouseEvent; public class TextField_replaceSelectedTextExample extends Sprite { private var myTextField1:TextField = new TextField(); private var myTextField2:TextField = new TextField(); public function TextField_replaceSelectedTextExample() { myTextField1.x = 10; myTextField1.width = 300; myTextField1.height = 50; myTextField1.background = true; myTextField1.border = true; myTextField1.text = "Select the text you want to remove from the line."; myTextField2.x = 10; myTextField2.y = 60; myTextField2.width = 300; myTextField2.height = 50; myTextField2.background = true; myTextField2.border = true; myTextField2.text = "Select the text you want to replace with NEW TEXT."; myTextField1.addEventListener(MouseEvent.MOUSE_UP, mouseHandler1); myTextField2.addEventListener(MouseEvent.MOUSE_UP, mouseHandler2); this.addChild(myTextField1); this.addChild(myTextField2); } private function mouseHandler1(e:MouseEvent):void { myTextField1.replaceSelectedText(""); } private function mouseHandler2(e:MouseEvent):void { if(myTextField2.selectionBeginIndex != myTextField2.selectionEndIndex) { myTextField2.replaceSelectedText("NEW TEXT"); } } } }
replaceText | () | 方法 |
public function replaceText(beginIndex:int, endIndex:int, newText:String):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
将 beginIndex
和 endIndex
参数指定的字符范围替换为 newText
参数的内容。正如所设计的一样,将替换从 beginIndex
到 endIndex-1
的文本。
注意:如果已对文本字段应用了样式表,则此方法不起作用。
参数
beginIndex:int — 替换范围开始位置的从零开始的索引值。
| |
endIndex:int — 所需文本范围后面的第一个字符的从零开始的索引位置。
| |
newText:String — 要用来替换指定范围字符的文本。
|
引发
Error — 此方法不能用于具有样式表的文本字段。
|
示例 ( 如何使用本示例 )
replaceText()
方法在文本字段中删除、替换并插入一些文本。
我们将 outputText
文本字段设置为自动适应文本并调整为左对齐的文本。通过使用第一个 replaceText()
方法调用,将第一行(“This is the wrong heading”)替换为“THIS IS THE HEADING FOR EVERYONE”。通过使用第二个方法调用,在“THE”和“HEADING”之间插入文本“CORRECT”。通过使用第三个方法调用,删除词语“FOR EVERYONE”。请注意,执行每个 appendText()
方法调用时,将更改当前文本的开头和结尾。此处,仅显示了最终文本(进行更改后)。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class TextField_replaceTextExample extends Sprite { public function TextField_replaceTextExample() { var outputText:TextField = new TextField(); outputText.x = 10; outputText.y = 10; outputText.background = true; outputText.autoSize = TextFieldAutoSize.LEFT; outputText.appendText("This is the wrong heading"); outputText.appendText("\n\n"); outputText.appendText("This is the body of the text."); outputText.replaceText(0, 25, "THIS IS THE HEADING FOR EVERYONE"); outputText.replaceText(12, 12, "CORRECT "); outputText.replaceText(27, 40, ""); this.addChild(outputText); } } }
setSelection | () | 方法 |
public function setSelection(beginIndex:int, endIndex:int):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
将第一个字符和最后一个字符的索引值(使用 beginIndex
和 endIndex
参数指定)指定的文本设置为所选内容。如果两个参数值相同,则此方法会设置插入点,就如同设置 caretIndex
属性一样。
参数
beginIndex:int — 所选内容中第一个字符从零开始的索引值(例如,第一个字符的索引值是 0,第二个字符的索引值是 1,依此类推)。
| |
endIndex:int — 所选内容中最后一个字符从零开始的索引值。
|
相关 API 元素
示例 ( 如何使用本示例 )
myTextField
文本字段的两个事件侦听器将响应用户的鼠标单击或鼠标弹起事件。当用户松开鼠标时,鼠标将弹起;在选择文本后,通常会发生这种事件。请注意,文本字段的默认设置是选择其文本。当单击某些文本时,将调用 clickHandler()
方法。当选择某些文本并松开鼠标时,将调用 mouseUpHandler()
方法。
在 clickHandler()
和 mouseUpHandler()
方法中,setSelection()
方法设置仅选择索引 54 和 70 之间的字符 (TEXT IN ALL CAPS)。
package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class TextField_setSelectionExample extends Sprite { private var myTextField:TextField = new TextField(); public function TextField_setSelectionExample() { myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.text = "No matter where you click on this text field only the TEXT IN ALL CAPS is selected."; myTextField.addEventListener(MouseEvent.CLICK, clickHandler); myTextField.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); this.addChild(myTextField); } private function clickHandler(event:MouseEvent):void { myTextField.setSelection(54, 70); } private function mouseUpHandler(event:MouseEvent):void { myTextField.setSelection(54, 70); } } }
setTextFormat | () | 方法 |
public function setTextFormat(format:flash.text:TextFormat, beginIndex:int = -1, endIndex:int = -1):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
将 format
参数指定的文本格式应用于文本字段中的指定文本。format
的值必须是指定所需文本格式设置更改的 TextFormat 对象。只有 format
的非空属性才会应用到文本字段。不会应用 format
的设置为 null
的任何属性。默认情况下,新创建的 TextFormat 对象的所有属性都设置为 null
。
注意:如果已对文本字段应用了样式表,则此方法不起作用。
setTextFormat()
方法会更改应用于文本字段中一定范围的字符或整个文本的文本格式设置。要将 format 的属性应用于文本字段中的所有文本,请不要指定 beginIndex
和 endIndex
的值。要将 format 的属性应用于一定范围的文本,请指定 beginIndex
和 endIndex
参数的值。可以使用 length
属性来确定索引值。
TextFormat 对象中包含两种类型的格式设置信息:字符级格式设置和段落级格式设置。文本字段中的每个字符都可以有自己的字符格式设置,例如字体名称、字体大小、粗体和斜体。
对于段落,通过检查段落的第一个字符可了解整个段落的格式设置。段落格式设置的示例有左边距、右边距和缩进。
对于用户手动插入的任何文本或通过 replaceSelectedText()
方法替换的任何文本,将接收默认的文本格式设置(而非为文本插入点指定的格式设置)以应用于新文本。要为新文本设置默认格式,请使用 defaultTextFormat
。
参数
format:flash.text:TextFormat — 一个包含字符和段落格式设置信息的 TextFormat 对象。
| |||||||||
beginIndex:int (default = -1 ) — 可选;一个整数,指定所需文本范围内第一个字符的从零开始的索引位置。
| |||||||||
endIndex:int (default = -1 ) — 可选;一个整数,指定所需文本范围后面的第一个字符。正如所设计的一样,如果指定 beginIndex 和 endIndex 值,则更新从 beginIndex 到 endIndex-1 的文本。
请注意,对于用户手动插入的任何文本或通过 |
引发
Error — 此方法不能用于具有样式表的文本字段。
| |
RangeError — 指定的 beginIndex 或 endIndex 超出范围。
|
相关 API 元素
示例 ( 如何使用本示例 )
我们为 myTextField
文本字段添加了一个事件侦听器,以便通过调用 clickHandler()
方法来响应鼠标单击。在 clickHandler()
方法中,getTextFormat()
方法从指定的文本范围中返回字符(索引 55)的当前格式,然后,将其放在 currentTextFormat
TextFormat 对象中。if
语句检查 currentTextFormat
文本格式,以确定该范围内的字符是否使用新格式(字体点值设置为 18)。如果不是,则新格式将在 54-70 范围内的文本 (TEXT IN ALL CAPS) 的大小更改为 18 点,将颜色更改为红色,并应用下划线和斜体。如果该范围内的字符使用的是新格式,则将该范围的格式重新设置为文本字段的默认(原始)格式。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFieldAutoSize; import flash.events.MouseEvent; public class TextField_setTextFormatExample extends Sprite { private var myTextField:TextField = new TextField(); private var newFormat:TextFormat = new TextFormat(); public function TextField_setTextFormatExample() { myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.selectable = false; myTextField.background = true; myTextField.text = "No matter where you click on this text field only the TEXT IN ALL CAPS changes format."; myTextField.addEventListener(MouseEvent.CLICK, clickHandler); newFormat.color = 0xFF0000; newFormat.size = 18; newFormat.underline = true; newFormat.italic = true; this.addChild(myTextField); } private function clickHandler(event:MouseEvent):void { var currentTextFormat:TextFormat = myTextField.getTextFormat(55); if(currentTextFormat.size != 18) { myTextField.setTextFormat(newFormat, 54, 70); } else { myTextField.setTextFormat(myTextField.defaultTextFormat); } } } }
change | 事件 |
flash.events.Event
属性 Event.type =
flash.events.Event.CHANGE
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在修改控件值后调度,这与 textInput
事件不同,后者是在修改值之前调度的。与 W3C DOM 事件模型版本的 change
事件(仅在控件失去焦点后调度此事件)不同,每当控件更改时即会调度 ActionScript 3.0 版本的 change
事件。例如,如果用户向文本字段中键入文本,则在每次键击后调度 change
事件。
Event.CHANGE
常量定义 change
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | true |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 已修改其值的对象。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。 |
示例 ( 如何使用本示例 )
共创建了两个文本字段,一个用于显示用户输入,另一个 (headingTextField
) 用于显示用户输入副本。还创建了一个 TextFormat 对象,并将默认的文本格式分配给 headingTextField
文本字段。在更改文本字段的内容时,将调用 changeHandler()
方法,它将 inputTextField
文本字段中的文本分配给 headingTextField
文本字段。(如果为 TextEvent.TEXT_INPUT
事件而不是 Event.CHANGE
事件调用该方法,则仅在用户输入更多文本后才会复制用户输入的内容。)
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFormat; import flash.text.TextFormatAlign; import flash.events.Event; import flash.events.TextEvent; public class TextField_Event_changeExample extends Sprite { private var inputTextField:TextField = new TextField(); private var headingTextField:TextField = new TextField(); private var newFormat:TextFormat = new TextFormat(); public function TextField_Event_changeExample() { headingTextField.x = 10; headingTextField.y = 10; headingTextField.height = 30; headingTextField.width = 400; headingTextField.background = true; headingTextField.backgroundColor = 0xF5F5DC; headingTextField.selectable = false; inputTextField.x = 10; inputTextField.y = 70; inputTextField.height = 20; inputTextField.width = 230; inputTextField.background = true; inputTextField.border = true; inputTextField.maxChars = 40; inputTextField.wordWrap = true; inputTextField.type = TextFieldType.INPUT; inputTextField.addEventListener(Event.CHANGE, changeHandler); newFormat.bold = true; newFormat.size = 18; newFormat.color = 0xFF0000; newFormat.align = TextFormatAlign.CENTER; headingTextField.defaultTextFormat = newFormat; this.addChild(inputTextField); this.addChild(headingTextField); } private function changeHandler(e:Event):void { headingTextField.text = inputTextField.text; } } }
link | 事件 |
flash.events.TextEvent
属性 TextEvent.type =
flash.events.TextEvent.LINK
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
当用户单击支持 HTML 的文本字段中的超链接(其中的 URL 以“event:”开头)时调度。URL 中“event:”后的其余部分将放在 LINK 事件的 text 属性中。
注意:仅在 Flash Player 生成此事件时(在本例中,当用户尝试输入文本时发生此事件)才发生默认行为(向文本字段中添加文本)。无法通过发送 textInput
事件来在文本字段中放置文本。
link
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | true |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 包含已单击的超链接的文本字段。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。 |
text | URL 中“event:”之后的其余部分 |
示例 ( 如何使用本示例 )
playMP3()
函数。创建一个名为 list
的 TextField 对象,并向其中填充了 HTML 文本。文本 "Track 1"
和 "Track 2"
是文本字段中的链接。在用户单击任一链接时,调用 playMP3() 函数。HTML 标签的 href
属性中跟随在字符串“event:”之后的 MP3 文件名将被传递给 linkHandler()
方法,作为 link
事件对象的 text
属性。
package { import flash.display.Sprite; import flash.errors.IOError; import flash.events.IOErrorEvent; import flash.events.TextEvent; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLRequest; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class TextField_event_link extends Sprite { private var myMP3:Sound; public function TextField_event_link() { myMP3 = new Sound(); var list:TextField = new TextField(); list.autoSize = TextFieldAutoSize.LEFT; list.multiline = true; list.htmlText = "<a href=\"event:track1.mp3\">Track 1</a><br>"; list.htmlText += "<a href=\"event:track2.mp3\">Track 2</a><br>"; addEventListener(TextEvent.LINK, linkHandler); addChild(list); } private function playMP3(mp3:String):void { try { myMP3.load(new URLRequest(mp3)); myMP3.play(); } catch(err:Error) { trace(err.message); } myMP3.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); } private function linkHandler(linkEvent:TextEvent):void { playMP3(linkEvent.text); } private function errorHandler(errorEvent:IOErrorEvent):void { trace(errorEvent.text); } } }
scroll | 事件 |
flash.events.Event
属性 Event.type =
flash.events.Event.SCROLL
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
用户滚动后 由 TextField 对象调度。
Event.SCROLL
常量定义 scroll
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 已滚动的 TextField 对象。target 属性不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。 |
示例 ( 如何使用本示例 )
mouseDown
事件,并调用相关联的 mouseDownScroll
处理函数。mouseDownScroll()
处理函数会使该字段滚动。然后调度 scroll
事件,并且相关联的 scrollHandler()
处理函数将更新第二个文本字段以使其显示当前滚动位置。
package { import flash.display.Sprite; import flash.text.*; import flash.events.Event; import flash.events.TextEvent; import flash.events.MouseEvent; public class TextScrollExample extends Sprite { private var myTextBox1:TextField = new TextField(); private var myTextBox2:TextField = new TextField(); private var myText:String = "Hello world and welcome to the show. It's really nice to meet you. Take your coat off and stay a while. OK, show is over. Hope you had fun. You can go home now. Don't forget to tip your waiter. There are mints in the bowl by the door. Thank you. Please come again."; public function TextScrollExample() { myTextBox1.text = myText; myTextBox1.width = 200; myTextBox1.height = 50; myTextBox1.multiline = true; myTextBox1.wordWrap = true; myTextBox1.background = true; myTextBox1.border = true; myTextBox2.x=220; myTextBox2.text="scrolled to line: " + myTextBox1.scrollV; addChild(myTextBox1); addChild(myTextBox2); myTextBox1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownScroll); myTextBox1.addEventListener(Event.SCROLL, scrollHandler); } public function mouseDownScroll(event:MouseEvent):void { myTextBox1.scrollV++; } public function scrollHandler(event:Event):void { myTextBox2.text="scrolled to line: " + myTextBox1.scrollV; } } }
textInput | 事件 |
flash.events.TextEvent
属性 TextEvent.type =
flash.events.TextEvent.TEXT_INPUT
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
用户输入一个或多个文本字符时,Flash Player 将调度 textInput
事件。各种文本输入法都可以生成此事件,包括使用标准键盘、输入法编辑器 (IME)、语音识别系统以及粘贴不带格式设置或样式信息的纯文本的操作。
textInput
事件对象的 type
属性值。
注意:对于 Delete 或 Backspace 键不会调度此事件。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | true |
cancelable | true ;调用 preventDefault() 方法以取消默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 在其中输入字符的文本字段。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。 |
text | 用户输入的字符或字符序列。 |
示例 ( 如何使用本示例 )
textInput
事件,调用 textInputHandler()
处理函数,并在第二个文本字段中显示这些字符。在向该输入字段中粘贴一个文本块时,事件处理函数会将整个块复制到另一个字段中。
package { import flash.display.Sprite; import flash.text.*; import flash.events.Event; import flash.events.TextEvent; import flash.events.MouseEvent; public class TextInputExample extends Sprite { private var myTextBox1:TextField = new TextField(); private var myTextBox2:TextField = new TextField(); public function TextInputExample() { myTextBox1.type = TextFieldType.INPUT; myTextBox1.width = 200; myTextBox1.height = 20; myTextBox1.background = true; myTextBox1.border = true; myTextBox2.x=220; addChild(myTextBox1); addChild(myTextBox2); myTextBox1.addEventListener(TextEvent.TEXT_INPUT,textInputHandler); } public function textInputHandler(event:TextEvent):void { myTextBox2.text=event.text; } } }
textInteractionModeChange | 事件 |
flash.events.Event
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 11, Flash Lite 4 |
当用户更改文本字段的交互模式时,Flash Player 调度 textInteractionModeChange
事件。例如,在 Android 上,用户可以使用上下文菜单选项从 NORMAL 模式切换到 SELECTION 模式
TextFieldExample
类来显示文本消息。可通过以下步骤完成该操作:
- 创建 TextField 类型的
label
属性。 - 类构造函数调用
configureLabel()
函数。 -
configureLabel()
方法首先创建新的 TextField 对象并将其赋给label
属性,然后设置其参数如下:- 左对齐文本字段。
- 启用背景填充。
- 启用边框。
configureLabel()
方法创建format
变量并将该变量赋给新的 TextFormat 实例,同时如下设置其参数:- 字体类型 = 宋体
- 字体颜色 = 纯红色
- 字体大小 = 10
- 字体下划线 = true
label
文本字段的defaultTextFormat
属性设置为format
,label
实例将添加到显示列表中,此显示列表最初在舞台上显示不包含文本的文本字段。- 构造函数将
label
文本字段的文本设置为"Hello world and welcome to the show."
采用方式是调用setLabel()
方法。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; public class TextFieldExample extends Sprite { private var label:TextField; private var labelText:String = "Hello world and welcome to the show."; public function TextFieldExample() { configureLabel(); setLabel(labelText); } public function setLabel(str:String):void { label.text = str; } private function configureLabel():void { label = new TextField(); label.autoSize = TextFieldAutoSize.LEFT; label.background = true; label.border = true; var format:TextFormat = new TextFormat(); format.font = "Verdana"; format.color = 0xFF0000; format.size = 10; format.underline = true; label.defaultTextFormat = format; addChild(label); } } }
Tue Jun 12 2018, 11:04 AM Z