包 | flashx.textLayout.elements |
类 | public class TextFlow |
继承 | TextFlow ContainerFormattedElement ParagraphFormattedElement FlowGroupElement FlowElement Object |
实现 | IEventDispatcher |
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
TextFlow 对象可以具有 ParagraphElement 和 DivElement 子对象。一个 div(DivElement 对象)表示一组段落(ParagraphElement 对象)。段落可以具有 SpanElement、InlineGraphicElement、LinkElement 和 TCYElement 子对象。
跨距 (SpanElement) 是段落中具有相同属性的文本范围。图像 (InlineGraphicElement) 表示一个任意图形,在一行文本中显示为单个字符。LinkElement 表示超链接(即 HTML 的 a
标记),可以包含多个跨距。在日语文本中,当一小串文本垂直于行显示时将使用 TCYElement 对象,类似于垂直行中的水平文本串。一个 TCYElement 也可以包含多个跨距。
TextFlow 也派生自 ContainerFormattedElement 类,该类是所有容器级别块元素的根类。
以下示例演示了其它元素(例如跨距和段落)与 TextFlow 对象间的关系。
每个 TextFlow 对象有一个对应的 Configuration 对象,用于指定初始字符和段落格式以及初始容器格式。该对象还可用于指定选择部分、链接、焦点和滚动的属性。以 Configuration 对象作为 TextFlow()
构造函数的参数时,将会创建一个只读快照,可以通过 TextFlow.configuration
属性访问该快照。创建后,不能更改 TextFlow 的配置。如果没有指定 Configuration,可以通过 TextFlow.defaultConfiguration
属性访问默认配置。
默认 MXML 属性mxmlChildren
相关 API 元素
IConfiguration
DivElement
FlowElement
FlowGroupElement
FlowLeafElement
IFlowComposer
ParagraphElement
SpanElement
属性 | 由以下参数定义 | ||
---|---|---|---|
alignmentBaseline : *
TextLayoutFormat:指定主要基线对齐到的基线。 | FlowElement | ||
backgroundAlpha : *
TextLayoutFormat:背景的 Alpha(透明度)值(如果在层叠期间未定义,则使用默认值)。 | FlowElement | ||
backgroundColor : *
TextLayoutFormat:文本的背景颜色(如果在层叠期间未定义,则使用默认值)。 | FlowElement | ||
baselineShift : *
TextLayoutFormat:从 dominantBaseline 值偏移基线的数量。 | FlowElement | ||
blockProgression : *
TextLayoutFormat:指定线位置的垂直或水平行进。 | FlowElement | ||
breakOpportunity : *
TextLayoutFormat:控制在将连续文本断开为多行时允许行断开的位置。 | FlowElement | ||
cffHinting : *
TextLayoutFormat:用于此文本的 CFF 提示的类型。 | FlowElement | ||
clearFloats : *
TextLayoutFormat:控制文本在浮点周围的环绕方式。 | FlowElement | ||
color : *
TextLayoutFormat:文本的颜色。 | FlowElement | ||
columnCount : *
TextLayoutFormat:文本列数(如果在层叠期间未定义,则使用默认值)。 | FlowElement | ||
columnGap : *
TextLayoutFormat:指定要在列之间留出的装订线空间量(以像素为单位),如果在层叠期间未定义,则使用默认值。 | FlowElement | ||
columnWidth : *
TextLayoutFormat:列宽(以像素为单位)(如果在层叠期间未定义,则使用默认值)。 | FlowElement | ||
computedFormat : flashx.textLayout.formats:ITextLayoutFormat [只读]
返回对于该元素有效的计算得出的格式属性。 | FlowElement | ||
configuration : IConfiguration [只读]
该 TextFlow 对象的 Configuration 对象。 | TextFlow | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
coreStyles : Object [只读] 返回此 FlowElement 的 coreStyles。 | FlowElement | ||
defaultConfiguration : Configuration [静态] 如果未指定配置,将为用于所有新 TextFlow 对象的默认配置。 | TextFlow | ||
digitCase : *
TextLayoutFormat:用于此文本的数字大小写类型。 | FlowElement | ||
digitWidth : *
TextLayoutFormat:用于此文本的数字宽度类型。 | FlowElement | ||
direction : *
TextLayoutFormat:指定文本在文本块中的默认双向嵌入级别。 | FlowElement | ||
dominantBaseline : *
TextLayoutFormat:指定该元素的哪条基线紧贴到 alignmentBaseline 以确定元素在该行上的垂直位置。 | FlowElement | ||
firstBaselineOffset : *
TextLayoutFormat:指定容器中第一行的基线位置。 | FlowElement | ||
flowComposer : IFlowComposer [覆盖] 管理该元素的容器。 | TextFlow | ||
fontFamily : *
TextLayoutFormat:要使用的字体的名称或用逗号分隔的字体名称列表。 | FlowElement | ||
fontLookup : *
TextLayoutFormat:要使用的字体查找。 | FlowElement | ||
fontSize : *
TextLayoutFormat:文本的大小(以像素为单位)。 | FlowElement | ||
fontStyle : *
TextLayoutFormat:文本的样式。 | FlowElement | ||
fontWeight : *
TextLayoutFormat:文本的粗细。 | FlowElement | ||
format : flashx.textLayout.formats:ITextLayoutFormat TextLayoutFormat 属性直接应用于该元素。 | FlowElement | ||
formatResolver : IFormatResolver 用于解析元素样式的回调函数。 | TextFlow | ||
generation : uint [只读]
该 TextFlow 对象的生成编号。 | TextFlow | ||
hostFormat : flashx.textLayout.formats:ITextLayoutFormat 该 TextFlow 对象的 TextLayoutFormat 对象。 | TextFlow | ||
id : String
将一个标识名称指定给该元素,以允许通过引用 id 为该元素设置样式。 | FlowElement | ||
interactionManager : ISelectionManager
与该 TextFlow 对象关联的 InteractionManager。 | TextFlow | ||
justificationRule : *
TextLayoutFormat:用于将段落中的文本两端对齐的规则。 | FlowElement | ||
justificationStyle : *
TextLayoutFormat:用于将段落两端对齐的样式。 | FlowElement | ||
kerning : *
TextLayoutFormat:字距调整可调整某些字符对之间的像素以提高可读性。 | FlowElement | ||
leadingModel : *
TextLayoutFormat:指定行距模型,它是行距基准和行距方向的组合。 | FlowElement | ||
ligatureLevel : *
TextLayoutFormat:控制可以在该文本中使用字体中定义的哪些连字。 | FlowElement | ||
lineBreak : *
TextLayoutFormat:控制容器内的换行(如果在层叠期间未定义,则使用默认值)。 | FlowElement | ||
lineHeight : *
TextLayoutFormat:文本的行距控制。 | FlowElement | ||
lineThrough : *
TextLayoutFormat:若为 true,则应用删除线(一条穿过文本中间的直线)。 | FlowElement | ||
linkActiveFormat : *
TextLayoutFormat:定义用于处于正常状态的链接的格式属性。 | FlowElement | ||
linkHoverFormat : *
TextLayoutFormat:定义当鼠标在链接边界内(悬停)时用于悬停状态链接的格式属性。 | FlowElement | ||
linkNormalFormat : *
TextLayoutFormat:定义用于处于正常状态的链接的格式属性。 | FlowElement | ||
listAutoPadding : *
TextLayoutFormat:指定当列表相应侧的内边距值为 auto 时,列表开始边缘的自动缩进。 | FlowElement | ||
listMarkerFormat : *
TextLayoutFormat:定义列表标记的格式属性。 | FlowElement | ||
listStylePosition : *
TextLayoutFormat:合法值为 ListStylePosition.INSIDE、ListStylePosition.OUTSIDE、FormatValue.INHERIT。默认值未定义,指示未设置。如果在层叠期间未定义,则此属性将从一个祖代继承值。 | FlowElement | ||
listStyleType : *
TextLayoutFormat:合法值为 ListStyleType.UPPER_ALPHA、ListStyleType.LOWER_ALPHA、ListStyleType.UPPER_ROMAN、ListStyleType.LOWER_ROMAN、ListStyleType.NONE、ListStyleType.DISC、ListStyleType.CIRCLE、ListStyleType.SQUARE、ListStyleType.BOX、ListStyleType.CHECK、ListStyleType.DIAMOND、ListStyleType.HYPHEN、ListStyleType.ARABIC_INDIC、ListStyleType.BENGALI、ListStyleType.DECIMAL、ListStyleType.DECIMAL_LEADING_ZERO、ListStyleType.DEVANAGARI、ListStyleType.GUJARATI、ListStyleType.GURMUKHI、ListStyleType.KANNADA、ListStyleType.PERSIAN、ListStyleType.THAI、ListStyleType.URDU、ListStyleType.CJK_EARTHLY_BRANCH、ListStyleType.CJK_HEAVENLY_STEM、ListStyleType.HANGUL、ListStyleType.HANGUL_CONSTANT、ListStyleType.HIRAGANA、ListStyleType.HIRAGANA_IROHA、ListStyleType.KATAKANA、ListStyleType.KATAKANA_IROHA、ListStyleType.LOWER_ALPHA、ListStyleType.LOWER_GREEK、ListStyleType.LOWER_LATIN、ListStyleType.UPPER_ALPHA、ListStyleType.UPPER_GREEK、ListStyleType.UPPER_LATIN、FormatValue.INHERIT。默认值未定义,指示未设置。如果在层叠期间未定义,则此属性将从一个祖代继承值。 | FlowElement | ||
locale : *
TextLayoutFormat:文本的区域设置。 | FlowElement | ||
mxmlChildren : Array
为该对象追加一个子对象数组。 | FlowGroupElement | ||
numChildren : int [只读]
返回该 FlowGroupElement 对象具有的 FlowElement 子对象的数目。 | FlowGroupElement | ||
paddingBottom : *
TextLayoutFormat:底部边界区(像素数)。 | FlowElement | ||
paddingLeft : *
TextLayoutFormat:左侧边界区(像素数)。 | FlowElement | ||
paddingRight : *
TextLayoutFormat:右侧边界区(像素数)。 | FlowElement | ||
paddingTop : *
TextLayoutFormat:顶部边界区(像素数)。 | FlowElement | ||
paragraphEndIndent : *
TextLayoutFormat:一个数字,指定段落结束边缘的缩进量(像素数)。 | FlowElement | ||
paragraphSpaceAfter : *
TextLayoutFormat:一个数字,指定在段落后留出的空白(像素数)。 | FlowElement | ||
paragraphSpaceBefore : *
TextLayoutFormat:一个数字,指定在段落前留出的空白(像素数)。 | FlowElement | ||
paragraphStartIndent : *
TextLayoutFormat:一个数字,指定段落开始边缘的缩进量(像素数)。 | FlowElement | ||
parent : FlowGroupElement [只读] 返回该 FlowElement 对象的父项。 | FlowElement | ||
parentRelativeEnd : int [只读] 返回该 FlowElement 对象在父项中的相对结束位置。 | FlowElement | ||
parentRelativeStart : int [只读] 返回该 FlowElement 对象在父项中的相对起始位置。 | FlowElement | ||
renderingMode : *
TextLayoutFormat:用于此文本的呈现模式。 | FlowElement | ||
styleName : *
TextLayoutFormat:为元素指定一个标识类,从而可以通过引用 styleName 来设置元素样式。 | FlowElement | ||
styles : Object [只读] 返回此 FlowElement 的样式。 | FlowElement | ||
tabStops : *
TextLayoutFormat:指定与段落关联的制表位。 | FlowElement | ||
textAlign : *
TextLayoutFormat:段落中的行与容器的对齐方式。 | FlowElement | ||
textAlignLast : *
TextLayoutFormat:两端对齐文本中段落最后一行(或唯一的一行)与容器的对齐方式。 | FlowElement | ||
textAlpha : *
TextLayoutFormat:文本的 Alpha(透明度)值。 | FlowElement | ||
textDecoration : *
TextLayoutFormat:文本上的装饰。 | FlowElement | ||
textIndent : *
TextLayoutFormat:一个数字,指定段落第一行的缩进量(以像素为单位)。 | FlowElement | ||
textJustify : *
TextLayoutFormat:指定文本两端对齐的选项。 | FlowElement | ||
textLength : int [只读]
返回该 FlowElement 对象及其子对象拥有的文本总长度。 | FlowElement | ||
textRotation : *
TextLayoutFormat:确定要旋转此文本的度数。 | FlowElement | ||
tracking : Object [只写]
设置间隙,且与 trackingRight 属性同义。 | FlowElement | ||
trackingLeft : *
TextLayoutFormat:像素数(或字体大小的百分比,如 120%),指示应用于每个字符左侧的间隙数(手动字距调整)。 | FlowElement | ||
trackingRight : *
TextLayoutFormat:像素数(或字体大小的百分比,如 120%)表示要应用到每个字符右边的间距的量(手动字距调整)。 | FlowElement | ||
typeName : String
每个 FlowElement 都具有 typeName。 | FlowElement | ||
typographicCase : *
TextLayoutFormat:用于此文本的印刷大小写的类型。 | FlowElement | ||
userStyles : Object 允许您针对 FlowElement 对象读写用户样式。 | FlowElement | ||
verticalAlign : *
TextLayoutFormat:垂直对齐或两端对齐(如果在层叠期间未定义,则使用默认值)。 | FlowElement | ||
whiteSpaceCollapse : *
TextLayoutFormat:将文本导入到 TextFlow 中时压缩或保留空白。 | FlowElement | ||
wordSpacing : *
TextLayoutFormat:指定在两端对齐期间使用的单词之间的最佳间距、最小间距和最大间距(作为普通间距宽度的乘数)。 | FlowElement |
方法 | 由以下参数定义 | ||
---|---|---|---|
TextFlow(config:IConfiguration = null)
构造函数 - 创建新 TextFlow 实例。 | TextFlow | ||
追加一个 FlowElement 子对象。 | FlowGroupElement | ||
在指定索引位置添加一个 FlowElement 子对象。 | FlowGroupElement | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | TextFlow | ||
从该 FlowElement 对象清除 styleProp 参数指定的样式。 | FlowElement | ||
生成此 FlowElement 对象的深层副本,包括任何子对象,在两个指定的字符位置之间复制内容,并将该副本作为 FlowElement 对象返回。 | FlowElement | ||
将事件调度到事件流中。 | TextFlow | ||
将此元素的 userStyles 与其它元素的 userStyles 比较。 | FlowElement | ||
对于给定的相对文本位置,查找包含该相对位置的第一个 FlowElement 子对象的索引。 | FlowGroupElement | ||
对于给定的相对文本位置,查找包含该位置的叶元素。 | FlowGroupElement | ||
返回该元素在文本流中的起始位置(绝对索引)。 | FlowElement | ||
返回相对于该 FlowElement 对象的指定位置的字符。 | FlowElement | ||
返回相对于该 FlowElement 对象的指定位置的字符代码。 | FlowElement | ||
返回位于指定索引的 FlowElement 子对象。 | FlowGroupElement | ||
在子对象中搜索指定的 FlowElement 对象,并返回其索引位置。 | FlowGroupElement | ||
返回其 id 属性与 idName 参数匹配的元素。 | TextFlow | ||
返回该元素相对于祖代元素的起始位置。 | FlowElement | ||
返回 styleName 设置为 styleNameValue 的所有元素。 | TextFlow | ||
返回 typeName 设置为 typeNameValue 的所有元素。 | TextFlow | ||
返回该组的第一个 FlowLeafElement 子项。 | FlowGroupElement | ||
返回该组的最后一个 FlowLeafElement 子项。 | FlowGroupElement | ||
返回文本流层次结构中的下一个 FlowElement 同级对象。 | FlowElement | ||
返回与该元素关联的 ParagraphElement 对象。 | FlowElement | ||
返回文本流层次结构中的上一个 FlowElement 同级对象。 | FlowElement | ||
返回由 styleProp 参数指定的样式值,该参数指定样式名称,可以包括任何用户样式名称。 | FlowElement | ||
[覆盖] | FlowGroupElement | ||
沿文本流层次结构向上移动,返回该元素的 TextFlow 根对象。 | FlowElement | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | TextFlow | ||
表示对象是否已经定义了指定的属性。 | Object | ||
创建实现对象且初始化在 MXML 标签上指定的所有组件属性后针对 MXML 对象进行调用。 | FlowElement | ||
使 TextFlow 的所有格式信息无效,强制其重新计算。 | TextFlow | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从组中删除指定的 FlowElement 子对象。 | FlowGroupElement | ||
删除位于指定索引位置的 FlowElement 子对象。 | FlowGroupElement | ||
从 EventDispatcher 对象中删除侦听器。 | TextFlow | ||
以指定的新元素替换组中的子元素。 | FlowGroupElement | ||
设置循环操作动态属性的可用性。 | Object | ||
将 styleProp 参数指定的样式设置为 newValue 参数指定的值。 | FlowElement | ||
生成此 FlowElement 对象的副本,复制两个指定的字符位置之间的内容。 | FlowElement | ||
在 childIndex 参数指定的位置拆分该对象。 | FlowGroupElement | ||
在由 relativePosition 参数指定的位置处拆分此 FlowElement 对象,该位置是此元素的文本中的相对位置。 | FlowElement | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | TextFlow |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
单击任何链接时调度。 | TextFlow | |||
每次重新合成后调度。 | TextFlow | |||
每次它被损坏时由 TextFlow 对象调度。可以使用此事件来查明 TextFlow 已更改,但将此事件发送出去时不访问 TextFlow 本身。 | TextFlow | |||
定义 flowOperationBegin 事件对象的 type 属性值。 | TextFlow | |||
定义 flowOperationComplete 事件对象的 type 属性的值。 | TextFlow | |||
定义 flowOperationEnd 事件对象的 type 属性值。 | TextFlow | |||
当由于宽度或高度设置为 auto 或百分比而使 InlineGraphicElement 调整了大小,且图形完成加载后进行调度。 | TextFlow | |||
在任何链接上按下鼠标时调度。 | TextFlow | |||
当鼠标经过任何链接时调度。 | TextFlow | |||
在任何链接上松开鼠标时调度。 | TextFlow | |||
当鼠标离开任何链接时调度。 | TextFlow | |||
当鼠标首次进入任何链接时调度。 | TextFlow | |||
在控制器容器中滚动了文本时由 TextFlow 对象调度。 | TextFlow | |||
每次更改所选项目后调度。 | TextFlow | |||
每次由于合成而使容器添加或更新了 DisplayObject 时由 TextFlow 对象调度。 | TextFlow |
configuration | 属性 |
configuration:IConfiguration
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
该 TextFlow 对象的 Configuration 对象。Configuration 对象指定初始字符和段落格式、初始容器格式,以及选择部分加亮、链接、焦点和滚动的属性。
如果没有指定 Configuration 对象,则 Text Layout Framework 使用默认 Configuration 对象,该对象由 defaultConfiguration
属性引用。
实现
public function get configuration():IConfiguration
相关 API 元素
defaultConfiguration | 属性 |
public static var defaultConfiguration:Configuration
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
如果未指定配置,将为用于所有新 TextFlow 对象的默认配置。
相关 API 元素
flowComposer | 属性 |
flowComposer:IFlowComposer
[覆盖] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
管理该元素的容器。
基于元素创建的 TextLine 显示为容器的子项。flowComposer 管理容器,并在编辑文本时将行添加到容器以及从容器中删除行。flowComposer 还会跟踪某些关键属性,例如合成到的宽度和高度,是否启用滚动,等等。
容器和 flowComposer
相互紧密关联。如果重置 flowComposer
,则容器会重置为新 flowComposer 的容器。类似地,如果重置了容器,则 flowComposer
会重置为容器的新 flowComposer。
实现
override public function get flowComposer():IFlowComposer
override public function set flowComposer(value:IFlowComposer):void
相关 API 元素
formatResolver | 属性 |
formatResolver:IFormatResolver
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
用于解析元素样式的回调函数。例如,可使用该函数,通过 CSS 或命名样式提供样式设置。
实现
public function get formatResolver():IFormatResolver
public function set formatResolver(value:IFormatResolver):void
相关 API 元素
generation | 属性 |
hostFormat | 属性 |
hostFormat:flashx.textLayout.formats:ITextLayoutFormat
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
该 TextFlow 对象的 TextLayoutFormat 对象。这可使几个优化重用主体格式。例如;
textFlowA.hostFormat = textFlowB.hostFormat
hostFormat
之前必须设置格式值。例如,下列行不会将字体大小设置为 24,因为字体大小是在 TextLayoutFormat 对象指定给 hostFormat
之后设置的。
format = new TextLayoutFormat() textFlow.hostFormat = format format.fontSize = 24;
实现
public function get hostFormat():flashx.textLayout.formats:ITextLayoutFormat
public function set hostFormat(value:flashx.textLayout.formats:ITextLayoutFormat):void
相关 API 元素
interactionManager | 属性 |
interactionManager:ISelectionManager
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
与该 TextFlow 对象关联的 InteractionManager。
控制所有文本选择和编辑。如果 TextFlow 不可选择,则 interactionManager 为 null。要使 TextFlow 可编辑,请指定既是 ISelectionManager 又是 IEditManager 的 interactionManager。要使 TextFlow 为只读且可以选择,请指定只是 ISelectionManager 的 interactionManager。
实现
public function get interactionManager():ISelectionManager
public function set interactionManager(value:ISelectionManager):void
相关 API 元素
TextFlow | () | 构造函数 |
public function TextFlow(config:IConfiguration = null)
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
构造函数 - 创建新 TextFlow 实例。
如果提供一个 config
参数,则会复制 Configuration 对象的内容,但您不能对其进行更改。但是,可以通过 configuration
属性访问配置设置。如果 config
参数为 null,可以通过 defaultConfiguration
属性访问默认配置设置。
Configuration 对象提供一种设置 TextFlow 的可配置默认属性的机制。尽管您无法更改 Configuration 对象,但是可以在必要时通过设置 TextFlow 及其子项的属性来覆盖默认属性。
参数config:IConfiguration (default = null ) — 指定用于该 TextFlow 对象的配置。如果为 null,可使用 TextFlow.defaultConfiguration 访问配置值。
|
相关 API 元素
addEventListener | () | 方法 |
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。可以为特定类型的事件、阶段和优先级在显示列表的所有节点上注册事件侦听器。
成功注册一个事件侦听器后,无法通过额外调用 addEventListener()
来更改其优先级。要更改侦听器的优先级,必须先调用 removeEventListener()
。然后,可以使用新的优先级再次注册该侦听器。
注册该侦听器后,如果继续调用具有不同 type
或 useCapture
值的 addEventListener()
,则会创建单独的侦听器注册。例如,如果首先注册 useCapture
设置为 true
的侦听器,则该侦听器只在捕获阶段进行侦听。如果您使用同一个侦听器对象再次调用 addEventListener()
,但 useCapture
设置为 false
,则您将有两个单独的侦听器:一个在捕获阶段侦听,另一个在目标阶段和冒泡阶段侦听。
不能只为目标阶段或冒泡阶段注册事件侦听器。这些阶段在注册期间是成对出现的,因为冒泡阶段只适用于目标节点的祖代。
如果不再需要某个事件侦听器,可调用 EventDispatcher.removeEventListener()
删除它;否则会产生内存问题。由于垃圾回收器不会删除仍包含引用的对象,因此不会从内存中自动删除使用已注册事件侦听器的对象。
复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。(如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器。)但是,如果移动 EventDispatcher 实例,则其中附加的事件侦听器也会随之移动。
如果在正在处理事件的节点上注册事件侦听器,则不会在当前阶段触发事件侦听器,但会在事件流的稍后阶段触发,如冒泡阶段。
如果从正在处理事件的节点中删除事件侦听器,则该事件侦听器仍由当前操作触发。删除事件侦听器后,决不会再次调用该事件侦听器(除非再次注册以备将来处理)。
参数
type:String — 事件的类型。
| |
listener:Function — 处理事件的侦听器函数。此函数必须接受事件对象作为其唯一的参数,并且不能返回任何结果,如下面的示例所示:
| |
useCapture:Boolean (default = false ) — 确定侦听器是运行于捕获阶段还是运行于目标和冒泡阶段。如果将 useCapture 设置为 true ,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapture 为 false ,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用两次 addEventListener() ,一次将 useCapture 设置为 true ,第二次再将 useCapture 设置为 false 。
| |
priority:int (default = 0 ) — 事件侦听器的优先级。优先级由一个 32 位整数指定。数字越大,优先级越高。优先级为 n 的所有侦听器会在优先级为 n-1 的侦听器之前处理。如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。默认优先级为 0。
| |
useWeakReference:Boolean (default = false ) — 确定对侦听器的引用是强引用,还是弱引用。强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。 类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将 |
dispatchEvent | () | 方法 |
getBackgroundManager | () | 方法 |
getElementByID | () | 方法 |
public function getElementByID(idName:String):FlowElement
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
返回其 id
属性与 idName
参数匹配的元素。提供根据 id
应用样式的功能。
例如,对于 id
为 span1 的元素,以下行将样式“color”设置为 0xFF0000(红色)。
textFlow.getElementByID("span1").setStyle("color", 0xFF0000);
注意:在以下代码中,p.addChild(s)
从其原始父代中删除 s
,并将其添加到新父代 p
中。
var s:SpanElement = new SpanElement(); var p:ParagraphElement = new ParagraphElement(); ... s = textFlow.getElementByID("span3") as SpanElement; p.addChild(s); textFlow.addChild(p);
参数
idName:String — 要查找的元素的 id 值。
|
FlowElement — 其 id 与 idName 匹配的元素。
|
相关 API 元素
示例 ( 如何使用本示例 )
getElementByID()
来访问 id 为 span3
的跨距,并将其颜色设置为红色。
package flashx.textLayout.elements.examples { import flash.display.Sprite; import flashx.textLayout.conversion.TextConverter; import flashx.textLayout.container.ContainerController; import flashx.textLayout.elements.ParagraphElement; import flashx.textLayout.elements.SpanElement; import flashx.textLayout.elements.TextFlow; public class TextFlow_getElementByIDExample extends Sprite { public function TextFlow_getElementByIDExample() { // create the TextFlow object var textFlow:TextFlow = new TextFlow(); // xml markup that defines the attributes and contents of a text flow var simpleText:String = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<flow:TextFlow xmlns:flow=\"http://ns.adobe.com/textLayout/2008\" verticalScrollPolicy=\"auto\" horizontalScrollPolicy=\"auto\" fontSize=\"14\" textIndent=\"15\" marginBottom=\"15\" paddingTop=\"4\" paddingLeft=\"4\">"+ "<flow:p>"+ "<flow:span id='span1'>In the first paragraph of the </flow:span>"+ "<flow:span id='span2' fontStyle=\"italic\">cheap </flow:span>"+ "<flow:span id='span3'>Western novel, a cowboy meets a saloon girl.</flow:span>"+ "</flow:p>"+ "</flow:TextFlow>"; var s:SpanElement = new SpanElement(); var s2:SpanElement = new SpanElement(); var p:ParagraphElement = new ParagraphElement(); // import the xml markup into a TextFlow object and display it on the stage textFlow = TextConverter.importToFlow(simpleText, TextConverter.TEXT_LAYOUT_FORMAT); // get element with ID of span3, make a copy of it textFlow.getElementByID("span3").setStyle("color", 0xFF0000); textFlow.flowComposer.addController(new ContainerController(this, 200, 800)); textFlow.flowComposer.updateAllControllers(); } } }
getElementsByStyleName | () | 方法 |
getElementsByTypeName | () | 方法 |
hasEventListener | () | 方法 |
public function hasEventListener(type:String):Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。这样,您就可以确定 EventDispatcher 对象在事件流层次结构中的哪个位置改变了对事件类型的处理。要确定特定事件类型是否确实会触发事件侦听器,请使用 IEventDispatcher.willTrigger()
。
hasEventListener()
与 willTrigger()
的区别是:hasEventListener()
只检查它所属的对象,而 willTrigger()
检查整个事件流以查找由 type
参数指定的事件。
参数
type:String — 事件的类型。
|
Boolean — 如果指定类型的侦听器已注册,则值为 true ;否则,值为 false 。
|
invalidateAllFormats | () | 方法 |
public function invalidateAllFormats():void
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
使 TextFlow 的所有格式信息无效,强制其重新计算。更改了样式时调用该方法。
相关 API 元素
removeEventListener | () | 方法 |
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
从 EventDispatcher 对象中删除侦听器。如果没有向 EventDispatcher 对象注册任何匹配的侦听器,则对此方法的调用没有任何效果。
参数
type:String — 事件的类型。
| |
listener:Function — 要删除的侦听器对象。
| |
useCapture:Boolean (default = false ) — 指出是为捕获阶段还是为目标和冒泡阶段注册了侦听器。如果为捕获阶段以及目标和冒泡阶段注册了侦听器,则需要对 removeEventListener() 进行两次调用才能将这两个侦听器删除:一次调用将 useCapture 设置为 true ,另一次调用将 useCapture 设置为 false 。
|
willTrigger | () | 方法 |
public function willTrigger(type:String):Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。将指定类型的事件调度给此 EventDispatcher 对象或其任一后代时,如果在事件流的任何阶段触发了事件侦听器,则此方法返回 true
。
hasEventListener()
与 willTrigger()
的区别是:hasEventListener()
只检查它所属的对象,而 willTrigger()
检查整个事件流以查找由 type
参数指定的事件。
参数
type:String — 事件的类型。
|
Boolean — 如果将会触发指定类型的侦听器,则值为 true ;否则,值为 false 。
|
click | 事件 |
flashx.textLayout.events.FlowElementMouseEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
单击任何链接时调度。
compositionComplete | 事件 |
flashx.textLayout.events.CompositionCompleteEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
每次重新合成后调度。
damage | 事件 |
flashx.textLayout.events.DamageEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
每次它被损坏时由 TextFlow 对象调度。可以使用此事件来查明 TextFlow 已更改,但将此事件发送出去时不访问 TextFlow 本身。当 TextFlow 更改已部分完成时会发送此事件,因此它可以处于不一致的状态:某些更改已经完成,而其它更改仍处于挂起状态。从事件获取所需的信息,并在控件返回到应用程序之后进行必需的更改。
flowOperationBegin | 事件 |
flashx.textLayout.events.FlowOperationEvent
属性 FlowOperationEvent.type =
flashx.textLayout.events.FlowOperationEvent.FLOW_OPERATION_BEGIN
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义
flowOperationBegin
事件对象的 type
属性值。执行操作之前被调度。取消该事件会阻止操作的执行。
flowOperationComplete | 事件 |
flashx.textLayout.events.FlowOperationEvent
属性 FlowOperationEvent.type =
flashx.textLayout.events.FlowOperationEvent.FLOW_OPERATION_COMPLETE
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义
flowOperationComplete
事件对象的 type
属性的值。在完成所有操作(包括挂起操作和合成操作)、完成合成并滚动显示后调度。
flowOperationEnd | 事件 |
flashx.textLayout.events.FlowOperationEvent
属性 FlowOperationEvent.type =
flashx.textLayout.events.FlowOperationEvent.FLOW_OPERATION_END
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义
flowOperationEnd
事件对象的 type
属性值。在完成操作之后调度。所有错误都存储在 OperationEvent.error
中。如果发生错误,则取消该事件会阻止重新引发错误。一般情况下,所有错误都可能是致命的。
在此时(操作执行后)更改操作可能会失败。
inlineGraphicStatusChanged | 事件 |
flashx.textLayout.events.StatusChangeEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
当由于宽度或高度设置为 auto 或百分比而使 InlineGraphicElement 调整了大小,且图形完成加载后进行调度。
mouseDown | 事件 |
flashx.textLayout.events.FlowElementMouseEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
在任何链接上按下鼠标时调度。
mouseMove | 事件 |
flashx.textLayout.events.FlowElementMouseEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
当鼠标经过任何链接时调度。
mouseUp | 事件 |
flashx.textLayout.events.FlowElementMouseEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
在任何链接上松开鼠标时调度。
rollOut | 事件 |
flashx.textLayout.events.FlowElementMouseEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
当鼠标离开任何链接时调度。
rollOver | 事件 |
flashx.textLayout.events.FlowElementMouseEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
当鼠标首次进入任何链接时调度。
scroll | 事件 |
flashx.textLayout.events.TextLayoutEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
在控制器容器中滚动了文本时由 TextFlow 对象调度。
selectionChange | 事件 |
flashx.textLayout.events.SelectionEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
每次更改所选项目后调度。主要用于更新与当前选择相关的用户界面。它也可用于改变选区,但无法用于改变 TextFlow 本身。
updateComplete | 事件 |
flashx.textLayout.events.UpdateCompleteEvent
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
每次由于合成而使容器添加或更新了 DisplayObject 时由 TextFlow 对象调度。
package flashx.textLayout.elements.examples { import flash.display.Sprite; import flashx.textLayout.container.ContainerController; import flashx.textLayout.elements.Configuration; import flashx.textLayout.elements.ParagraphElement; import flashx.textLayout.elements.SpanElement; import flashx.textLayout.elements.TextFlow; import flashx.textLayout.formats.TextLayoutFormat; import flashx.textLayout.formats.TextAlign; import flash.text.engine.FontPosture; import flash.text.engine.Kerning; public class TextFlowExample extends Sprite { public function TextFlowExample() { var config:Configuration = new Configuration(); var textLayoutFormat:TextLayoutFormat = new TextLayoutFormat(); textLayoutFormat.color = 0xFF0000; textLayoutFormat.fontFamily = "Arial, Helvetica, _sans"; textLayoutFormat.fontSize = 48; textLayoutFormat.kerning = Kerning.ON; textLayoutFormat.fontStyle = FontPosture.ITALIC; textLayoutFormat.textAlign = TextAlign.CENTER; config.textFlowInitialFormat = textLayoutFormat; var textFlow:TextFlow = new TextFlow(config); var p:ParagraphElement = new ParagraphElement(); var span:SpanElement = new SpanElement(); span.text = "Hello, World!"; p.addChild(span); textFlow.addChild(p); textFlow.flowComposer.addController(new ContainerController(this,500,200)); textFlow.flowComposer.updateAllControllers(); } } }
Tue Jun 12 2018, 11:04 AM Z