套件 | flash.text |
類別 | public class TextFormat |
繼承 | TextFormat Object |
子類別 | UITextFormat |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在設定 TextFormat 物件的屬性之前,您必須使用建構函式 new TextFormat()
來建立該物件。 當您使用 TextField.defaultTextFormat
屬性或 TextField.setTextFormat()
方法將 TextFormat 物件套用到文字欄位時,只會套用其已定義的屬性。在您將文字加入到 TextField
之前使用 TextField.defaultTextFormat
屬性套用格式,並在您將文字加入到 TextField
之後使用 setTextFormat()
方法加入格式。根據預設,TextFormat 屬性為 null
。因為如果您沒有對屬性提供值,Flash Player 便會使用自己的預設格式。 下列是 Flash Player 用於每一個屬性 (如果屬性的值是 null
) 的預設格式:
align = "left" |
blockIndent = 0 |
bold = false |
bullet = false |
color = 0x000000 |
font = "Times New Roman" (在 Mac OS X 上的預設字體為 Times) |
indent = 0 |
italic = false |
kerning = false |
leading = 0 |
leftMargin = 0 |
letterSpacing = 0 |
rightMargin = 0 |
size = 12 |
tabStops = [] (空陣列) |
target = "" (空字串) |
underline = false |
url = "" (空字串) |
在每個屬性的描述中,也會對每個屬性的預設格式加以說明。
相關 API 元素
flash.text.TextField.defaultTextFormat
flash.text.TextField.getTextFormat()
屬性 | 定義自 | ||
---|---|---|---|
align : String
指出段落的對齊方式。 | TextFormat | ||
blockIndent : Object
指出區塊縮排,以像素為單位。 | TextFormat | ||
bold : Object
會指定文字是否為粗體。 | TextFormat | ||
bullet : Object
指出文字是項目清單的一部分。 | TextFormat | ||
color : Object
指出文字的顏色。 | TextFormat | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
font : String
這個文字格式的文字字體名稱,以字串表示。 | TextFormat | ||
indent : Object
指出段落中從左方邊界到第一個字元的縮排。 | TextFormat | ||
italic : Object
指出在此文字格式中的文字是否為斜體。 | TextFormat | ||
kerning : Object
Boolean 值,指出啟用字距微調 (true) 或停用字距微調 (false)。 | TextFormat | ||
leading : Object
整數,表示行與行之間垂直空間的量 (稱為「行距」)。 | TextFormat | ||
leftMargin : Object
段落的左方邊界,以像素為單位。 | TextFormat | ||
letterSpacing : Object
數字,代表在所有字元之間平均分佈的空間量。 | TextFormat | ||
rightMargin : Object
段落的右方邊界,以像素為單位。 | TextFormat | ||
size : Object
這個文字格式的文字像素大小。 | TextFormat | ||
tabStops : Array
指定自訂定位停駐點為非負值整數的陣列。 | TextFormat | ||
target : String
指出顯示超連結的目標視窗。 | TextFormat | ||
underline : Object
指出使用此文字格式的文字有加底線 (true) 或未加底線 (false)。 | TextFormat | ||
url : String
指出此文字格式中之文字的目標 URL。 | TextFormat |
方法 | 定義自 | ||
---|---|---|---|
TextFormat(font:String = null, size:Object = null, color:Object = null, bold:Object = null, italic:Object = null, underline:Object = null, url:String = null, target:String = null, align:String = null, leftMargin:Object = null, rightMargin:Object = null, indent:Object = null, leading:Object = null)
建立含有指定屬性的 TextFormat 物件。 | TextFormat | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object |
align | 屬性 |
align:String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9., Flash Lite 4 |
指出段落的對齊方式。 有效的值為 TextFormatAlign 常數。
預設值為 TextFormatAlign.LEFT。
實作
public function get align():String
public function set align(value:String):void
擲回值
ArgumentError — 指定的 align 不是 flash.text.TextFormatAlign 的成員。
|
相關 API 元素
範例
如何使用本範例
如需有關如何使用這個屬性的說明,請參閱 TextFormat() 建構函式的範例。
blockIndent | 屬性 |
blockIndent:Object
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9., Flash Lite 4 |
指出區塊縮排,以像素為單位。 區塊縮排會套用到文字的整個區塊;也就是文字中的所有行。 相較之下,一般縮排 (TextFormat.indent
) 只會影響每個段落的第一行。 如果這個屬性為 null
,TextFormat 物件就不會指定區塊縮排 (區塊縮排為 0)。
實作
public function get blockIndent():Object
public function set blockIndent(value:Object):void
範例
如何使用本範例
如需有關如何使用這個屬性的說明,請參閱 TextFormat() 建構函式的範例。
bold | 屬性 |
bullet | 屬性 |
color | 屬性 |
color:Object
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9., Flash Lite 4 |
指出文字的顏色。 包含三個 8 位元 RGB 組件的數字;例如 0xFF0000 是紅色,而 0x00FF00 是綠色。 預設值為 null
,表示 Flash Player 使用黑色 (0x000000)。
實作
public function get color():Object
public function set color(value:Object):void
範例
如何使用本範例
如需有關如何使用這個屬性的說明,請參閱 TextFormat() 建構函式的範例。
font | 屬性 |
indent | 屬性 |
italic | 屬性 |
kerning | 屬性 |
kerning:Object
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9. |
Boolean 值,指出啟用 (true
) 或停用 (false
) 字距微調。 字距微調會調整特定字元對之間的像素,以改善可讀性。您應該僅在必要時 (如處理大型字體的標題) 使用此功能。 只有嵌入字體會支援字距微調。
一些字體如 Verdana 和固定間距字體 (如 Courier New),也不支援字距微調。
預設值為 null
,表示不啟用字距微調。
實作
public function get kerning():Object
public function set kerning(value:Object):void
leading | 屬性 |
leftMargin | 屬性 |
letterSpacing | 屬性 |
letterSpacing:Object
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9. |
數字,代表在所有字元之間平均分佈的空間量。 此值會指定增加在每個字元後的像素數。 預設值是 null
,表示字元間距使用 0 個像素。 您可以使用十進位值,例如 1.75
。
實作
public function get letterSpacing():Object
public function set letterSpacing(value:Object):void
範例
如何使用本範例
如需有關如何使用這個屬性的說明,請參閱 TextFormat() 建構函式的範例。
rightMargin | 屬性 |
size | 屬性 |
tabStops | 屬性 |
tabStops:Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9., Flash Lite 4 |
指定自訂定位停駐點為非負值整數的陣列。 每個定位停駐點都是以像素指定。 如果未指定自訂定位停駐點 (null
),預設的定位停駐點就是 4 (平均字元寬度)。
實作
public function get tabStops():Array
public function set tabStops(value:Array):void
範例
如何使用本範例
如需有關如何使用這個屬性的說明,請參閱 TextFormat() 建構函式的範例。
target | 屬性 |
target:String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9., Flash Lite 4 |
指出顯示超連結的目標視窗。 如果目標視窗是空字串,文字將顯示在預設目標視窗 _self
中。 您可以選擇一個自訂名稱或是下列四個名稱之一:_self
會指定目前視窗中的目前頁框;_blank
會指定新的視窗;_parent
會指定目前頁框的父輩;_top
會指定目前視窗中最上層的頁框。 如果 TextFormat.url
屬性為空字串或是 null
,則您雖可以擷取或設定這個屬性,但該屬性不會發生作用。
實作
public function get target():String
public function set target(value:String):void
相關 API 元素
範例
如何使用本範例
如需有關如何使用這個屬性的說明,請參閱 TextFormat() 建構函式的範例。
underline | 屬性 |
underline:Object
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9., Flash Lite 4 |
指出使用此文字格式的文字有加底線 (true
) 或未加底線 (false
)。 這個底線和以 <U>
標籤產生的底線相似,但後者並不是真正的底線,因為它不會正確地略過超過底線的字母。 預設值為 null
,表示不使用底線。
實作
public function get underline():Object
public function set underline(value:Object):void
範例
如何使用本範例
如需有關如何使用這個屬性的說明,請參閱 TextFormat() 建構函式的範例。
url | 屬性 |
url:String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9., Flash Lite 4 |
指出此文字格式中之文字的目標 URL。 如果 url
屬性是空字串,該文字就沒有超連結。 預設值為 null
,指出文字沒有超連結。
注意: 具有指派之文字格式的文字,必須以 htmlText
屬性設定,才能讓超連結產生作用。
實作
public function get url():String
public function set url(value:String):void
相關 API 元素
範例
如何使用本範例
如需有關如何使用這個屬性的說明,請參閱 TextFormat() 建構函式的範例。
TextFormat | () | 建構函式 |
public function TextFormat(font:String = null, size:Object = null, color:Object = null, bold:Object = null, italic:Object = null, underline:Object = null, url:String = null, target:String = null, align:String = null, leftMargin:Object = null, rightMargin:Object = null, indent:Object = null, leading:Object = null)
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9., Flash Lite 4 |
建立含有指定屬性的 TextFormat 物件。 然後,您就可以更改 TextFormat 物件的屬性,藉以更改文字欄位的格式。
任何參數都可以設定為 null
,以指出該參數尚未定義。 所有參數都是選擇性的;任何省略的參數都會被視為 null
。
font:String (default = null ) — 文字的字體名稱,以字串表示。
| |
size:Object (default = null ) — 指示像素大小的整數。
| |
color:Object (default = null ) — 使用此文字格式的文字顏色。 包含三個 8 位元 RGB 組件的數字;例如 0xFF0000 是紅色,而 0x00FF00 是綠色。
| |
bold:Object (default = null ) — 指出文字是否為粗體的 Boolean 值。
| |
italic:Object (default = null ) — 指出文字是否為斜體的 Boolean 值。
| |
underline:Object (default = null ) — 指出文字是否有加底線的 Boolean 值。
| |
url:String (default = null ) — 此文字格式的文字所超連結至的 URL。 如果 url 是空字串,該文字就沒有超連結。
| |
target:String (default = null ) — 顯示超連結的目標視窗。 如果目標視窗是空字串,文字將顯示在預設目標視窗 _self 中。 如果將 url 參數設定為空字串或是 null 值,則您雖然可以擷取或設定這個屬性,但該屬性將不會發生作用。
| |
align:String (default = null ) — 段落的對齊方式,以 TextFormatAlign 值表示。
| |
leftMargin:Object (default = null ) — 指出段落的左方邊界,以像素為單位。
| |
rightMargin:Object (default = null ) — 指出段落的右方邊界,以像素為單位。
| |
indent:Object (default = null ) — 指出段落中從左方邊界到第一個字元的縮排之整數。
| |
leading:Object (default = null ) — 數字,指出行與行之間的開頭垂直空間量。
|
範例 ( 如何使用本範例 )
formatTextField
文字欄位會在另一行列出所有的 TextField 類別屬性選項 (但 kerning
例外)。 當使用者按一下 formatTextField
文字欄位中的某一行時,會觸發 formatTextFieldClickHandler()
方法。
formatTextFieldClickHandler()
方法會呼叫 TextField.getLineIndexAtPoint()
方法以取得按一下那一行的索引,然後呼叫 TextField.getLineText()
方法取得該行的內容。 接著,switch 陳述式會檢查行的內容,並據此設定 newformat
TextFormat 物件的屬性。接著 setTextFormat()
方法會將 contentTextField
文字欄位的文字格式設定為新格式。 使用者可以按一下不同的 formatTextField
行,將不同的格式套用到 contentTextField
文字欄位 (tab 設定是一個陣列,定義了行中每個 tab 各自的定位停駐點)。如果選取了 url
或 target
行,使用者必須按一下 contentTextField
文字欄位才能啟用連結,讓目標 URL (Flex 首頁) 的內容顯示出來。target
屬性的預設值是 "_self",表示如果使用者選取 url
行,內容將顯示在目前視窗中。為了讓 target
屬性產生作用,必須先行為 url
屬性設定一個 URL。
如果使用者按一下 contentTextField
文字欄位,則會觸發 contentTextFieldClickHandler()
方法,將此欄位的格式和 newFormat
TextFormat 物件設定為文字欄位的預設 (原始) 格式。這會清除使用者已進行的所有格式變更。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFieldAutoSize; import flash.events.MouseEvent; import flash.text.TextFormatAlign; public class TextFormat_constructorExample extends Sprite { private var contentTextField:TextField = new TextField(); private var formatTextField:TextField = new TextField(); private var newFormat:TextFormat = new TextFormat(); public function TextFormat_constructorExample() { contentTextField.x = 10; contentTextField.y = 10; contentTextField.background = true; contentTextField.border = true; contentTextField.multiline = true; contentTextField.wordWrap = true; contentTextField.selectable = false; contentTextField.width = 250; contentTextField.height = 120; contentTextField.htmlText = "<p>The TextFormat class represents character formatting " + "information. Use the TextFormat class to create specific text formatting " + "for text fields." + " </p><br>" + "\tTab One" + "\tTab Two<br>"; formatTextField.x = 10; formatTextField.y = 140; formatTextField.background = true; formatTextField.border = true; formatTextField.autoSize = TextFieldAutoSize.LEFT; formatTextField.text = "align: right\n" + "blockIndent: 10 pixels\n" + "bold:\n" + "bullet:\n" + "color: red\n" + "font: Arial\n" + "indent: 20 pixels\n" + "italic:\n" + "leading: 5 spaces\n" + "leftMargin: 20 pixels\n" + "letterSpacing: 4 pixels\n" + "rightMargin: 20 pixels\n" + "size: 16 point\n" + "target: new window\n" + "tabStops: 50 and 150 pixel\n" + "underline:\n" + "url: Adobe Flex page\n"; formatTextField.addEventListener(MouseEvent.CLICK, formatTextFieldClickHandler); contentTextField.addEventListener(MouseEvent.CLICK, contentTextFieldClickHandler); this.addChild(contentTextField); this.addChild(formatTextField); } private function formatTextFieldClickHandler(e:MouseEvent):void { var value:String= ""; var i:uint = 0; var index:int = formatTextField.getLineIndexAtPoint(e.localX, e.localY); var line:String = formatTextField.getLineText(index);; line = line.substr(0, (line.indexOf(":"))); switch(line) { case "align": newFormat.align = TextFormatAlign.RIGHT; break; case "blockIndent": newFormat.blockIndent = 10; break; case "bold": newFormat.bold = true; break; case "bullet": newFormat.bullet = true; break; case "color": newFormat.color = 0xFF0000; break; case "font": newFormat.font = "Arial"; break; case "indent": newFormat.indent = 20; break; case "italic": newFormat.italic = true; break; case "leading": newFormat.leading = 5; break; case "leftMargin": newFormat.leftMargin = 20; break; case "letterSpacing": newFormat.letterSpacing = 4; break; case "rightMargin": newFormat.rightMargin = 20; break; case "size": newFormat.size = 16; break; case "tabStops": newFormat.tabStops = [50, 150]; break; case "target": newFormat.url = "http://www.adobe.com/products/flex/"; newFormat.target = "_blank"; break; case "underline": newFormat.underline = true; break; case "url": newFormat.url = "http://www.adobe.com/products/flex/"; break; } contentTextField.setTextFormat(newFormat); } private function contentTextFieldClickHandler(e:MouseEvent):void { contentTextField.setTextFormat(contentTextField.defaultTextFormat); newFormat = contentTextField.defaultTextFormat; } } }
- 建立類型為 TextField 的
label
屬性。 - 類別建構函式會呼叫函數
configureLabel()
configureLabel()
函數會先建立新的 TextField 物件並將它指定給label
,然後將它的參數設定為下列各項- 使文字欄位左側對齊
- 啟用背景填色
- 啟用邊框。
- 接著,
configureLabel()
會建立區域變數format
,並將此變數指定給新的 TextFormat 實體,其參數設定為下列各項:- Font type = Verdana
- Font Color = solid red
- Font size = 10
- Font underline = true。
- 標籤的
defaultTextFormat
屬性已經設定為format
,label
實體也已經加入顯示清單,舞台上就會開始顯示一個不含文字的文字欄位 (具有白色背景的極小方塊)。 - 最後 (回到建構函式中),呼叫
setLabel()
設定標籤的文字,在 x = 0、y = 0 座標上顯示 "Hello World and welcome to the show"。
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; public class TextFormatExample extends Sprite { private var label:TextField; public function TextFormatExample() { configureLabel(); setLabel("Hello World and welcome to the show"); } 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, 03:47 PM Z