套件 | 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:以像素為單位代表要套用至每個字元左側字距調整 (手動字距微調) 量的數字 (或 fontSize 的百分比,例如,120%)。 | FlowElement | ||
trackingRight : *
TextLayoutFormat:以像素為單位代表要套用至每個字元右側字距調整 (手動字距微調) 量的數字 (或 fontSize 的百分比,例如,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 與 otherElement 的 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
。例如,因為字體大小是在將 TextLayoutFormat 物件指定給 hostFormat
之後才會設定,所以下列各行不會將字體大小設為 24。
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()
。 然後,您就可以使用新的優先順序等級來重新註冊偵聽程式。
一旦您註冊了偵聽程式,對 addEventListener()
來進行後續呼叫,若使用不同的 type
或 useCapture
值,將會導致建立個別的偵聽程式註冊程序。 例如,如果您先將 useCapture
設為 true
來註冊偵聽程式,則只會在捕捉階段進行偵聽。 如果您使用相同的偵聽程式物件 (但將 useCapture
設為 false
) 再次呼叫 addEventListener()
,會得到兩個不同的偵聽程式: 一個會在捕捉階段進行偵聽,另一個則會在目標與反昇階段進行偵聽。
您無法單獨針對目標階段或反昇階段註冊事件偵聽程式。 由於反昇階段只適用於目標節點的祖系,因此這兩種階段必須一起進行註冊。
當您不再需要事件偵聽程式,可以呼叫 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, 03:47 PM Z