套件 | flash.text.engine |
類別 | public final class FontDescription |
繼承 | FontDescription Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
FontDescription 物件會套用到 ElementFormat,再接著套用到 TextBlock 中的 ContentElement。將 FontDescription 套用到 ElementFormat 之後,其 locked
屬性會設為 true
。已鎖定的 FontDescription 物件的屬性不得變更。請改用 clone()
方法建立物件的未鎖定副本,就可以修改副本並將它指定給 ElementFormat。
注意:FTE (Flash 文字引擎) 不支援 Type 1 字體或點陣圖字體,例如 Type 3、ATC、sfnt-wrapped CID 或 Naked CID。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
cffHinting : String
用於此文字的 CFF 提示類型。 | FontDescription | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
fontLookup : String
指定字體查詢的方式。 | FontDescription | ||
fontName : String
要使用的字體名稱,或是以逗號分隔的字體名稱清單。 | FontDescription | ||
fontPosture : String
指定字體型態。 | FontDescription | ||
fontWeight : String
指定字體粗細。 | FontDescription | ||
locked : Boolean
指出 FontDescription 是否已鎖定。 | FontDescription | ||
renderingMode : String
用於此文字的顯示模式。 | FontDescription |
方法 | 定義自 | ||
---|---|---|---|
FontDescription(fontName:String = "_serif", fontWeight:String = "normal", fontPosture:String = "normal", fontLookup:String = "device", renderingMode:String = "cff", cffHinting:String = "horizontalStem")
建立 FontDescription 物件。 | FontDescription | ||
建構 FontDescription 的未鎖定、已複製副本。 | FontDescription | ||
指出物件是否有已定義的指定屬性。 | Object | ||
[靜態]
如果可使用的裝置字體可以使用指定的 fontName、fontWeight 以及 fontPosture,則傳回 true。 | FontDescription | ||
[靜態]
如果指定的 fontName、fontWeight 和 fontPosture 提供內嵌字體,而 Font.fontType 為 flash.text.FontType.EMBEDDED_CFF 時,則傳回 true。 | FontDescription | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object |
cffHinting | 屬性 |
cffHinting:String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
用於此文字的 CFF 提示類型。請針對此屬性使用 CFFHinting
常數。只有在文字的 RenderingMode
屬性設定為 RenderingMode.CFF
時,才會套用這個屬性。
使用的 CFF (壓縮字體格式) 提示類型決定 Flash 執行階段是否讓強制水平詞幹符合子像素格線。
只套用到內嵌字體。
預設值為 CFFHinting.HORIZONTAL_STEM
。
對於 CFFHinting
屬性,您可以使用以下 CFFHinting 類別的值:
字串值 | 說明 |
---|---|
CFFHinting.NONE | 指定不使用 CFF 提示。不強制字符中的水平詞幹符合子像素格線。這個設定適用於動畫或大型字體。 |
CFFHinting.HORIZONTAL_STEM | 指定使用 CFF 提示。強制水平詞幹符合螢幕上子像素格線若要使用這個設定,RenderingMode 屬性必須設定為 RenderingMode.CFF 。 |
實作
public function get cffHinting():String
public function set cffHinting(value:String):void
擲回值
ArgumentError — 如果設為不屬於 CFFHinting 成員的任何一個值。
| |
IllegalOperationError — 如果於 FontDescription 物件已鎖定後設定 (locked 為 true )。
|
相關 API 元素
fontLookup | 屬性 |
fontLookup:String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
指定字體查詢的方式。
預設值是 FontLookup.DEVICE
。
若要設定此屬性,請使用下列字串值:
字串值 | 說明 |
---|---|
FontLookup.DEVICE | 執行階段會在本機系統上使用指定的 name 來查詢裝置字體並將文字顯示在該系統上。 |
FontLookup.EMBEDDED_CFF | 執行階段會使用指定的 name 來查詢內嵌 CFF 字體並顯示文字。只會考量 flash.text.Font.fontType.EMBEDDED_CFF 類型的字體。如果指定的 CFF 字體並未內嵌在應用程式中,則執行階段會嘗試為每個字符使用後援裝置字體。如果您一開始就選取了裝置字體,就不用使用這個方法,因為這個方法比較沒有效率。 |
實作
public function get fontLookup():String
public function set fontLookup(value:String):void
擲回值
IllegalOperationError — 如果於 FontDescription 物件已鎖定後設定 (locked 為 true )。
|
相關 API 元素
fontName | 屬性 |
fontName:String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
要使用的字體名稱,或是以逗號分隔的字體名稱清單。執行階段會以清單中的第一個可用字體來顯示元素。例如,"Arial, Helvetica, _sans" 會讓 Player 先搜尋 Arial,如果找不到 Arial 則搜尋 Helvetica,如果這兩項都找不到,則搜尋 _sans。
Flash 執行階段支援三個一般裝置字體名稱:_sans (對於 sans serif 字體)、 _serif (對於 serif 字體) 以及 _typewriter (對於 mono-space 字體)。這些會對應到特定的裝置字體 (視平台而定)。
預設值為 "_serif"
。
Flash 執行階段會針對未在選取的字體清單中提供的文字提供後援字體。不管使用中的字體是內嵌字體或是裝置字體,如果在字體中找不到要顯示的字符,則執行階段會嘗試使用另一個可能包含該字符的裝置字體來加以顯示。
實作
public function get fontName():String
public function set fontName(value:String):void
擲回值
IllegalOperationError — 如果於 FontDescription 物件已鎖定後設定 (locked 為 true )。
|
相關 API 元素
fontPosture | 屬性 |
fontPosture:String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
指定字體型態。
預設值是 FontPosture.NORMAL
。
若要設定這個屬性的值,使用以下在 FontPosture 類別的常數。
值 | 說明 |
---|---|
FontPosture.NORMAL | 正常的字體型態。 |
FontPosture.ITALIC | 斜體的字體型態。 |
實作
public function get fontPosture():String
public function set fontPosture(value:String):void
擲回值
ArgumentError — 如果設為不屬於 FontPosture 成員的任何一個值。
| |
IllegalOperationError — 如果於 FontDescription 物件已鎖定後設定 (locked 為 true )。
|
相關 API 元素
fontWeight | 屬性 |
fontWeight:String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
指定字體粗細。
預設值是 FontWeight.NORMAL
。
若要設定這個屬性的值,使用以下在 FontWeight 類別的常數。
字串值 | 說明 |
---|---|
FontWeight.NORMAL | 正常的字體粗細。 |
FontWeight.BOLD | 粗體的字體粗細。 |
實作
public function get fontWeight():String
public function set fontWeight(value:String):void
擲回值
ArgumentError — 如果設為不屬於 FontWeight 成員的任何一個值。
| |
IllegalOperationError — 如果於 FontDescription 物件已鎖定後設定 (locked 為 true )。
|
相關 API 元素
locked | 屬性 |
locked:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5., Flash Lite 4 |
指出 FontDescription 是否已鎖定。如果是 true
,則 FontDescription 不得修改。呼叫 FontDescription.clone()
取得 FontDescription 物件的未鎖定副本。
實作
public function get locked():Boolean
public function set locked(value:Boolean):void
擲回值
IllegalOperationError — 如果於 FontDescription 物件已鎖定後設定 (locked 為 true )。
|
renderingMode | 屬性 |
renderingMode:String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
用於此文字的顯示模式。請針對此屬性使用 RenderingMode
常數。
只套用到內嵌字體。
預設值是 RenderingMode.CFF
。
若要設定這個屬性的值,使用以下在 RenderingMode 類別的常數。
字串值 | 說明 |
---|---|
RenderingMode.NORMAL | 套用一般文字顯示方式,符合 Flash Player 7 和舊版使用的顯示類型。 |
RenderingMode.CFF | 套用 CFF (壓縮字體格式) 顯示,讓文字更易於辨識。(這項功能從 Flash Player 10 開始提供)。 CFF 顯示方式允許高品質顯示小字體外觀。 |
實作
public function get renderingMode():String
public function set renderingMode(value:String):void
擲回值
ArgumentError — 如果設為不屬於 RenderingMode 成員的任何一個值。
| |
IllegalOperationError — 如果於 FontDescription 物件已鎖定後設定 (locked 為 true )。
|
相關 API 元素
FontDescription | () | 建構函式 |
public function FontDescription(fontName:String = "_serif", fontWeight:String = "normal", fontPosture:String = "normal", fontLookup:String = "device", renderingMode:String = "cff", cffHinting:String = "horizontalStem")
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
建立 FontDescription 物件。
參數fontName:String (default = "_serif ") — 要使用的字體名稱,或是以逗號分隔的字體名稱清單。
| |
fontWeight:String (default = "normal ") — 指定字體粗細。
| |
fontPosture:String (default = "normal ") — 指定字體型態。
| |
fontLookup:String (default = "device ") — 指定如何查詢字體。
| |
renderingMode:String (default = "cff ") — 用於此文字的顯示模式。請針對此屬性使用 RenderingMode 常數。
| |
cffHinting:String (default = "horizontalStem ") — 用於此文字的 CFF (壓縮字體格式) 提示類型。請針對此屬性使用 CFFHinting 常數。
|
擲回值
ArgumentError — 指定的 fontWeight 不是 FontWeight 的成員。
| |
ArgumentError — 指定的 fontPosture 不是 FontPosture 的成員。
| |
ArgumentError — 指定的 fontLookup 不是 FontLookup 的成員。
| |
ArgumentError — 指定的 renderingMode 不是 RenderingMode 的成員。
| |
ArgumentError — 指定的 cffHinting 不是 CFFHinting 的成員。
|
clone | () | 方法 |
public function clone():FontDescription
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
建構 FontDescription 的未鎖定、已複製副本。
傳回值FontDescription — FontDescription 物件的未鎖定副本。
|
範例 ( 如何使用本範例 )
此範例會建立 FontDescription
物件、為其指定裝置字體、設定不同的字體屬性,並將新物件指定給 ElementFormat
物件 (因而鎖定它)。此範例中會使用 ElementFormat
來建立新的 TextElement
,而且會使用 TextElement
做為 TextBlock
的內容。接著會從 TextBlock
建立文字行。
若要修改 FontDescription
物件,請先檢查其 locked
屬性。如果是 true,請使用 clone()
方法建立 FontDescription
的未鎖定副本,變更其屬性,並將它指定給新的 ElementFormat 物件。然後,將新的 ElementFormat
重新連結到 TextBlock
。當這些文字行重新斷行時,新文字行會有新的字體設定。
package { import flash.display.Sprite; import flash.text.engine.*; public class FontDescription_cloneExample extends Sprite { private var fd:FontDescription; private var fd2:FontDescription; public function FontDescription_cloneExample():void { fd = new FontDescription(); fd.fontLookup = flash.text.engine.FontLookup.DEVICE; fd.fontName = "Palatino"; fd.fontWeight = flash.text.engine.FontWeight.BOLD; fd.fontPosture = flash.text.engine.FontPosture.ITALIC; var ef1:ElementFormat = new ElementFormat(fd); var str:String = "This is flash text 0123456789"; var tb:TextBlock = new TextBlock(); var te1:TextElement = new TextElement(str, ef1); tb.content = te1; var line1:TextLine = tb.createTextLine(null, 600); addChild(line1); fd2 = (fd.locked) ? fd.clone() : fd; fd2.fontWeight = flash.text.engine.FontWeight.NORMAL; var ef2:ElementFormat = new ElementFormat(fd2); tb.content.elementFormat=ef2; var line2:TextLine = tb.createTextLine(null, 600); addChild(line2); } } }
isDeviceFontCompatible | () | 方法 |
public static function isDeviceFontCompatible(fontName:String, fontWeight:String, fontPosture:String):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.1, AIR 2 |
如果可使用的裝置字體可以使用指定的 fontName
、fontWeight
與 fontPosture
,則傳回 true。
flash.text.engine 類別僅能使用 OpenType 與 TrueType 裝置字體。如果使用較舊字體技術的字體,執行階段會逐字退回到已知良好狀態以顯示文字。
參數
fontName:String — 要檢查的裝置字體名稱。
| |
fontWeight:String — 指定字體粗細。使用 FontWeight 。
| |
fontPosture:String — 指定字體型態。使用 FontPosture 。
|
Boolean — 如果有相容的裝置字體可供使用,則為 true ,否則為 false 。
|
擲回值
ArgumentError — 指定的 fontWeight 不是 FontWeight 的成員。
| |
ArgumentError — 指定的 fontPosture 不是 FontPosture 的成員。
|
相關 API 元素
isFontCompatible | () | 方法 |
public static function isFontCompatible(fontName:String, fontWeight:String, fontPosture:String):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
如果指定的 fontName
、fontWeight
和 fontPosture
提供內嵌字體,而 Font.fontType
為 flash.text.FontType.EMBEDDED_CFF
時,則傳回 true。從 Flash Player 10 開始,可以出現在應用程式內容中的內嵌字體有兩種:一般內嵌字體只由 TextField 使用。CFF 內嵌字體只由 flash.text.engine 類別使用。這兩種類型是由 enumerateFonts()
函數所傳回之 Font
類別的 fontType
屬性所辨別。
flash.text.engine 類別無法使用 EMBEDDED
類型的字體。如果 fontLookup
是設定為 FontLookup.EMBEDDED_CFF
,而且在執行階段對於指定的名稱、粗細和型態所能提供的字體屬於類型 EMBEDDED
,執行階段就會針對個別字符改使用裝置字體以顯示文字,就像是未提供指定名稱和樣式的內嵌字體一樣。
如果相同的名稱、粗細和型態提供 EMBEDDED
和 EMBEDDED_CFF
字體,則會選取 EMBEDDED_CFF
字體並使用 EMBEDDED_CFF
字體來顯示文字。
參數
fontName:String — 要檢查的內嵌字體名稱。
| |
fontWeight:String — 指定字體粗細。使用 FontWeight 。
| |
fontPosture:String — 指定字體型態。使用 FontPosture 。
|
Boolean — 如果有相容的內嵌字體可供使用,則為 true ,否則為 false 。
|
擲回值
ArgumentError — 指定的 fontWeight 不是 FontWeight 的成員。
| |
ArgumentError — 指定的 fontPosture 不是 FontPosture 的成員。
|
相關 API 元素
此範例會建立 FontDescription
物件、為其指定裝置字體、設定不同的字體屬性,並將新物件指定給 ElementFormat
物件。其他字體格式化作業則會在 ElementFormat
內完成。此範例中會使用 ElementFormat
來建立新的 TextElement
,而且會使用 TextElement
做為 TextBlock
的內容。接著會從 TextBlock
建立文字行。
package { import flash.display.Sprite; import flash.text.engine.*; public class FontDescriptionExample extends Sprite { public function FontDescriptionExample():void { var fd:FontDescription = new FontDescription(); fd.fontLookup = flash.text.engine.FontLookup.DEVICE; fd.fontName = "Palatino"; fd.fontWeight = flash.text.engine.FontWeight.BOLD; fd.fontPosture = flash.text.engine.FontPosture.ITALIC; var ef1:ElementFormat = new ElementFormat(fd); ef1.fontSize = 30; ef1.color = 0xFF0000; var str:String = "This is flash text 0123456789"; var tb:TextBlock = new TextBlock(); var te1:TextElement = new TextElement(str, ef1); tb.content = te1; var line1:TextLine = tb.createTextLine(null, 600); addChild(line1); } } }
Tue Jun 12 2018, 03:47 PM Z