套件 | flash.text.engine |
類別 | public final class GroupElement |
繼承 | GroupElement ContentElement Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
content
屬性。GroupElement 物件也能直接共享另一個 GroupElement 物件中的通用格式。
當某個 GroupElement 包含另一個 GroupElement 時,內部 GroupElement 會保留其本身的格式 (ElementFormat 設定)。它不會繼承外部 GroupElement 的格式。
大部分的格式屬性對 GroupElement 沒有影響。因此,針對 elementFormat
參數為 null 的 GroupElement 物件建立文字行是合法的。但在群組成員的交集部分,少數幾個格式屬性如 kerning
和 ligature
會影響格式。如果群組有 null 格式,上一個元素的格式會決定群組成員的交集部分上所使用的格式。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
elementCount : int [唯讀]
群組中的元素數目。 | GroupElement | ||
elementFormat : ElementFormat
用於此元素的 ElementFormat 物件。 | ContentElement | ||
eventMirror : EventDispatcher
EventDispatcher 物件,此物件會接收傳送給有效文字行之每一個事件的副本 (這些文字行是根據這個內容元素所建立)。 | ContentElement | ||
groupElement : GroupElement [唯讀]
包含此元素的 GroupElement 物件,如果它不在群組中則為 null。 | ContentElement | ||
rawText : String [唯讀]
元素中的文字副本,包括任何 U+FDEF 字元。 | ContentElement | ||
text : String [唯讀]
元素中的文字副本,不包括代表 String 中之圖像元素的任何 U+FDEF 字元。 | ContentElement | ||
textBlock : flash.text.engine:TextBlock [唯讀]
此元素所屬的 TextBlock。 | ContentElement | ||
textBlockBeginIndex : int [唯讀]
此元素之第一個字母的文字區塊內的索引。 | ContentElement | ||
textRotation : String
將旋轉當成一個單位套用至元素。 | ContentElement | ||
userData : *
提供了讓應用程式將任意資料與元素產生關聯的方法。 | ContentElement |
方法 | 定義自 | ||
---|---|---|---|
GroupElement(elements:Vector.<ContentElement> = null, elementFormat:ElementFormat = null, eventMirror:EventDispatcher = null, textRotation:String = "rotate0")
建立新的 GroupElement 實體。 | GroupElement | ||
從群組內擷取元素。 | GroupElement | ||
傳回元素,其中包含 charIndex 參數所指定的字元。 | GroupElement | ||
傳回 element 參數所指定之元素索引。 | GroupElement | ||
以新的 GroupElement (內含這些元素) 取代由 beginIndex 和 endIndex 參數指定的元素範圍。 | GroupElement | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
將來自元素範圍 (由 beginIndex 和 endIndex 參數所指定) 的文字合併至由 beginIndex 指定的元素中,而不影響到該元素的格式。 | GroupElement | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
replaceElements(beginIndex:int, endIndex:int, newElements:Vector.<ContentElement>):Vector.<ContentElement>
以 newElements 參數的內容取代 beginIndex 和 endIndex 參數所指定的元素範圍。 | GroupElement | ||
將群組內的元素設定為向量的內容。 | GroupElement | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
將 TextElement 分成兩個,在指定的位置建立新的 TextElement。 | GroupElement | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
針對 groupIndex 在外部 GroupElement 物件中指定的巢狀 GroupElement,解散其中的元素群組。 | GroupElement | ||
會傳回指定之物件的基本值。 | Object |
elementCount | 屬性 |
GroupElement | () | 建構函式 |
public function GroupElement(elements:Vector.<ContentElement> = null, elementFormat:ElementFormat = null, eventMirror:EventDispatcher = null, textRotation:String = "rotate0")
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
建立新的 GroupElement 實體。
參數elements:Vector.<ContentElement> (default = null ) — 要包含在 GroupElement 內之 ContentElement 的 Vector。此 Vector 可能是空的。預設值為 null 。
| |
elementFormat:ElementFormat (default = null ) — 群組的元素格式。預設值為 null 。此格式會套用到群組中元素的交集,但這些元素不會繼承格式。
| |
eventMirror:EventDispatcher (default = null ) — EventDispatcher 物件,此物件將會接收傳送給文字行之每一個事件的副本 (這些文字行是根據這個內容元素所建立)。預設值為 null 。
| |
textRotation:String (default = "rotate0 ") — 旋轉會將元素當做一個單位進行套用。請針對此屬性使用 TextRotation 常數。預設值為 TextRotation.ROTATE_0 。
|
擲回值
ArgumentError — 指定的 element 包含 null 元素。
| |
ArgumentError — 指定的 element 包含了不屬於 ContentElement 已知子類別的元素。
| |
ArgumentError — 指定的 element 包含了指定為 TextBlock 之 content 的元素。
| |
ArgumentError — 指定的 element 包含了已經是群組成員,或是不只一次出現在 elements 中的元素。
|
相關 API 元素
getElementAt | () | 方法 |
public function getElementAt(index:int):ContentElement
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
從群組內擷取元素。
參數
index:int — 要擷取的元素索引。
|
ContentElement |
擲回值
RangeError — 如果 index 超出範圍。
|
getElementAtCharIndex | () | 方法 |
public function getElementAtCharIndex(charIndex:int):ContentElement
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
傳回元素,其中包含 charIndex
參數所指定的字元。
參數
charIndex:int — 您想要尋找的元素所屬字元之索引值 (從零開始)。0 的值會對應到群組中的第一個字元,而不是 TextBlock 中的第一個字元。
|
ContentElement — 包含位於 charIndex 之字元的元素。
|
擲回值
RangeError — 如果 charIndex 不在 0 - rawText.length 的範圍內。
|
getElementIndex | () | 方法 |
public function getElementIndex(element:ContentElement):int
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
傳回 element
參數所指定之元素索引。
參數
element:ContentElement — 您想要擷取的索引所屬群組中元素。
|
int — element 所指定之元素索引,如果此元素不在群組中則為 -1。
|
groupElements | () | 方法 |
public function groupElements(beginIndex:int, endIndex:int):GroupElement
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
以新的 GroupElement
參數 (內含這些元素) 取代由 beginIndex
和 endIndex
參數所指定的元素範圍。依原設計,這會取代從 beginIndex 到 endIndex-1 的元素。
參數
beginIndex:int — 要分組之範圍開始位置的索引值 (從零開始)。
| |
endIndex:int — 要分組之範圍結束位置之後的索引值 (從零開始)。
|
GroupElement — 新的群組。
|
擲回值
RangeError — 如果 beginIndex 或 endIndex 超出範圍。
|
mergeTextElements | () | 方法 |
public function mergeTextElements(beginIndex:int, endIndex:int):flash.text.engine:TextElement
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
將來自元素範圍 (由 beginIndex
和 endIndex
參數所指定) 的文字合併至由 beginIndex
指定的元素中,而不影響到該元素的格式。依原設計,這會取代來自元素中從 beginIndex 到 endIndex-1 的文字。一併文字合併之後,從 beginIndex+1 到 endIndex-1 的元素就會從群組中移除並成為孤立元素,並帶有 null
group
屬性。
參數
beginIndex:int — 要合併之範圍開始位置的索引值 (從零開始)。
| |
endIndex:int — 要合併之範圍結束位置之後的索引值 (從零開始)。
|
flash.text.engine:TextElement — 此範圍內的第一個文字元素,現在包含此範圍內的所有文字。
|
擲回值
RangeError — 如果 beginIndex 或 endIndex 超出範圍。
| |
ArgumentError — 如果指定之範圍內有任何元素不是 TextElement。
|
相關 API 元素
replaceElements | () | 方法 |
public function replaceElements(beginIndex:int, endIndex:int, newElements:Vector.<ContentElement>):Vector.<ContentElement>
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
以 newElements
參數的內容取代 beginIndex
和 endIndex
參數所指定的元素範圍。這會取代從 beginIndex 到 endIndex-1 的元素。
若要刪除元素,請為 newElements
傳遞 null
。若要插入元素,請為 beginIndex
和 endIndex
傳遞相同的值。新的元素會插入在指定索引的前面。若要附加元素,請為 beginIndex
和 endIndex
傳遞 elementCount
。
在此作業之後,被取代的元素將會被孤立,並傳回 null
group
屬性。
參數
beginIndex:int — 取代範圍之開始位置的索引值 (從零開始)。
| |
endIndex:int — 取代範圍之結束位置之後的索引值 (從零開始)。
| |
newElements:Vector.<ContentElement> — 用來取代指定之元素範圍的元素。
|
Vector.<ContentElement> — 包含已被取代之元素的向量。
|
擲回值
RangeError — 指定的 beginIndex 或 endIndex 超出範圍。
| |
ArgumentError — 指定的 newElements 包含 null 元素。
| |
ArgumentError — 指定的 newElements 包含 this 。
| |
ArgumentError — 指定的 newElements 包含了不屬於 ContentElement 已知子類別的元素。
| |
ArgumentError — 指定的 newElements 包含了指定為 TextBlock 之 content 的元素。
| |
ArgumentError — 指定的 newElements 包含了已經是群組成員,或是不只一次出現在 elements 中的元素。
| |
ArgumentError — 如果此作業產生 GroupElement 內的巢狀旋轉。
|
setElements | () | 方法 |
public function setElements(value:Vector.<ContentElement>):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
將群組內的元素設定為向量的內容。
參數
value:Vector.<ContentElement> |
擲回值
ArgumentError — 指定的 value 包含 null 元素。
| |
ArgumentError — 指定的 value 包含 this 。
| |
ArgumentError — 指定的 value 包含了不屬於 ContentElement 已知子類別的元素。
| |
ArgumentError — 指定的 value 包含了指定為 TextBlock 之 content 的元素。
| |
ArgumentError — 指定的 value 包含了已經是群組成員,或是不只一次出現在 value 中的元素。
| |
ArgumentError — 如果此作業產生 GroupElement 內的巢狀旋轉。
|
splitTextElement | () | 方法 |
public function splitTextElement(elementIndex:int, splitIndex:int):flash.text.engine:TextElement
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
將 TextElement 分成兩個,在指定的位置建立新的 TextElement。
參數
elementIndex:int — 群組內之元素位置的索引值 (從零開始)。
| |
splitIndex:int — TextElement 中要發生分割之字元的索引值 (從零開始)。指定的字元將會是新 TextElement 中的第一個字元。
|
flash.text.engine:TextElement — 新的文字元素,其中包含原始文字元素的後半部分。
|
擲回值
RangeError — 如果 elementIndex 或 charIndex 超出範圍。
| |
ArgumentError — 如果位於 elementIndex 的元素不是 TextElement。
|
相關 API 元素
ungroupElements | () | 方法 |
public function ungroupElements(groupIndex:int):void
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
針對 groupIndex
在外部 GroupElement 物件中指定的巢狀 GroupElement,解散其中的元素群組。作業完畢之後,解散的元素群組會取代巢狀 GroupElement,後者會成為帶有 null
group
屬性的孤立元素。
參數
groupIndex:int — 要分割之群組位置的索引值 (從零開始)。
|
擲回值
RangeError — 如果 groupIndex 超出範圍。
| |
ArgumentError — 如果位於 groupIndex 的元素不是 GroupElement。
|
content
屬性,並從中建立三行。
package { import flash.display.Sprite; import flash.display.MovieClip; import flash.text.engine.ContentElement; import flash.text.engine.TextBlock; import flash.text.engine.TextElement; import flash.text.engine.GraphicElement; import flash.text.engine.GroupElement; import flash.text.engine.TextLine; import flash.text.engine.ElementFormat; import flash.text.engine.FontDescription; public class GroupElementExample extends Sprite { public function GroupElementExample():void { var redBox:MovieClip = new MovieClip(); redBox.graphics.beginFill(0xCC0000, 1.0); redBox.graphics.drawRect(0, 0, 20, 20); redBox.graphics.endFill(); var format:ElementFormat = new ElementFormat(); var fontDescription:FontDescription = new FontDescription("Arial"); format.fontSize = 16; format.fontDescription = fontDescription; var str1:String = "This red box is a GraphicElement "; var str2:String = " in the middle of two TextElements, " + " which together make " + "up a GroupElement in a TextBlock that is broken into three lines."; var textElement1:TextElement = new TextElement(str1,format); var graphicElement:GraphicElement = new GraphicElement(redBox,redBox.width,redBox.height, format); var textElement2:TextElement = new TextElement(str2, format); var groupVector:Vector.<ContentElement> = new Vector.<ContentElement>(); groupVector.push(textElement1, graphicElement, textElement2); var groupElement = new GroupElement(groupVector); var textBlock:TextBlock = new TextBlock(); textBlock.content = groupElement; createTextLines(textBlock); } private function createTextLines(textBlock:TextBlock):void { var yPos = 20; var line_length:Number = 450; var textLine:TextLine = textBlock.createTextLine (null, line_length); while (textLine) { addChild(textLine); textLine.x = 15; yPos += textLine.height+8; textLine.y = yPos; textLine = textBlock.createTextLine(textLine, line_length); } } } }
Tue Jun 12 2018, 03:47 PM Z