-標籤:字型
在處理文字時,為了美觀,有時會給文字選擇一些特殊的字型,使得文字不那麼單調,這就會引發乙個問題:由於每個使用者的系統有差異,當對方機器上沒有安裝你指定的字型時,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...