flex中使用裝置和嵌入字型

2022-08-16 01:18:12 字數 2946 閱讀 3823

-標籤:字型

在處理文字時,為了美觀,有時會給文字選擇一些特殊的字型,使得文字不那麼單調,這就會引發乙個問題:由於每個使用者的系統有差異,當對方機器上沒有安裝你指定的字型時,flash player會自動選擇乙個合適的字型,無法保證文字的外觀在控制之中,很可能會走樣。如何避免出現這樣的情況?

解決方法有兩種:使用裝置字型和使用嵌入字型。

裝置字型的特性:

fontsize:12;  

fontfamily: arial

, "_sans"

;  當使用者的機器上沒有arial字型,flash player自動使用「_sans」裝置字型。和系統字型的使用不同,裝置字型必須用引號。 

嵌入字型

有些情況要求必須使用嵌入字型,例如使用了動畫效果中的部分效果如fade(淡入淡出效果)、rotate(旋轉效果),dissolve(溶解效果)。可以在樣式在定義嵌入字型:

@font

-face   

fontsize:12;  

fontfamily:myfont;  //指定字型,使用嵌入字型的別名  

}    

在嵌入一些雙位元組型的字型,比如中文字型,日文字型時,字型資訊複雜,字型檔案大,為了減小程式的檔案大小,可以對嵌入字型的字元範圍進行限制,這樣,沒有使用的字元資訊不會被包含在檔案中。例如上面使用了英文本型,只能使用英文範圍內的字元,如果使用了中文,將無法顯示。

在font-face中使用unicoderange來指定字元範圍,例如:

@font

-face   

必須使用字元的字元編碼來定義字元範圍,這裡的字元編碼採用unicode(統一字元編碼)標準。

定義字元範圍的另一種做法是在flex-config.xml中新增相關資訊。用文字編輯器開啟位於flex builder 2安裝目錄下的flex sdk 2/frameworks/flex-config.xml檔案,找到標籤。

<

fonts

>

<

languages

>

<

language-range

>

<

lang

>

englishrange

lang

>

<

range

>

u+0020-u+007e

range

>

language-range

>

fonts

>

按照以上格式新增字型的字元範圍,在標籤中設定標籤的名稱。這樣,在程式中可以直接使用該名稱來定義字元範圍。例如:

@font

-face   

<

language-range

>

<

lang

>

chinese (all)

lang

>

<

range

>

u+3000-u+303f,u+3105-u+312c,u+31a0-u+31bf,u+4e00-u+9faf,u+ff01-u+ff60,u+f900-u+faff,u+201c-u+201d,u+2018-u+2019,u+2014,u+2026,u+ffe5,u+00b7

range

>

language-range

>

嵌入字型的另一種方式是把字型放在外部的swf中,然後載入swf檔案。例如:

@font

-face   

這裡不能使用flashtype屬性,該屬性的值由swf檔案決定,無法再更改。在使用該字型之前,必須保證swf檔案已經載入完畢。

要在程式中使用該字型:

@font

-face   

.plaintext   

.boldtext   

注意:在使用嵌入字型時,即使是同一字型,它的不同樣式比如斜體和粗體要單獨進行定義,互相獨立,不能混在一起。

使用指令碼也可以嵌入字型:

[embed(mimetype=

, source=

'../assets/arial.ttf'

, fontname=

'myarialfont'

)]  

private

var myfont:class;  

定義樣式:

.plaintext   

如果嵌入的字型很大,生成的程式檔案也會很大,導致載入時要花較長時間,要避免這個問題,可以把字型檔案打包成swf檔案,然後載入到程式中。 

下面是乙個使用例項: 

<?

xmlversion

="1.0"

encoding

="utf-8"

?>

<

xmlns:mx

=""layout

="horizontal"

horizontalalign

="center"

verticalalign

="center"

viewsourceurl

="src/embeddingfonts/index.html"

>

<

mx:style

>

@font-face   

.mytextstyle   

mx:style

>

<

mx:text

stylename

="mytextstyle"

text

="embedded fonts rock!"

width

="100%"

/>

>

Flex 動態嵌入字型

flex編譯器,位於flex sdk的bin目錄,例如 flash builder 4 sdk 3.5 c program files adobe adobe flash builder 4 sdks 3.5.0 bin 編譯器的詳細使用說明參考官方文件using the flex compiler...

在Flex中使用嵌入字型鮮為人知的秘密

u 0020 u 007e 按照以上格式新增字型的字元範圍,在標籤中設定標籤的名稱。這樣,在程式中可以直接使用該名稱來定義字元範圍。例如 font face 在flex config.xml的同目錄下還有乙個flash unicode table.xml檔案,其中列出了絕大部分語言的unicode的...

Flex字型篇 動態嵌入字型 按需嵌入

接上篇 flex字型篇 動態嵌入字型 按需嵌入 中文字型小的幾m,大的十幾m,如果把整個中文字型都嵌入到swf會使容量增大,不利於網路傳輸,這時應該採取按需嵌入的辦法,只把使用到的字元才嵌入到字型swf裡。按需嵌入的字型樣式 需要編譯的css檔案 wb fz22.css generate by wi...