接上篇:flex字型篇——動態嵌入字型
按需嵌入
中文字型小的幾m,大的十幾m,如果把整個中文字型都嵌入到swf會使容量增大,不利於網路傳輸,這時應該採取按需嵌入的辦法,只把使用到的字元才嵌入到字型swf裡。
按需嵌入的字型樣式
需要編譯的css檔案:wb_fz22.css
/* generate by wizbuilder cs */
/* text:1608 char:62 */
@font-face{
src:local
("方正黑體簡體");
fontfamily
: wb-方正黑體簡體;
fontstyle
: normal;
fontweight
: normal;
advancedantialiasing
: true;
unicoderange:
u+65b9
,u+6b63
,u+9ed1
,u+4f53
,u+7b80
,u+000a
,u+003c
,u+0046
,u+004f
,u+004e
,u+0054
,u+0020
,u+004b
,u+0045,
u+0052
,u+0049
,u+0047
,u+003d
,u+0022
,u+0031
,u+003e
,u+002f
,u+8bf7
,u+53cc
,u+51fb
,u+8fd9
,u+91cc
,u+7f16
,u+8f91,
u+6587
,u+672c
,u+002e
,u+0050
,u+0032
,u+0033
,u+0034
,u+0035
,u+0036
,u+0037
,u+0038
,u+0039
,u+0030
,u+5e72
,u+9898,
u+000d
,u+786e
,u+9009
,u+9879
,u+9519
,u+8bef
,u+5355
,u+0074
,u+0072
,u+0075
,u+0065
,u+0066
,u+0061
,u+006c
,u+0073,
u+0078
,u+65c1
,u+767d;
該css檔案是外部exe自動生成,並且自動進行編譯生成字型swf的,其中u+****的**是使用到的unicode字元。
c#中生成上述unicode字元的主要**如下:
private
static
string tounicode(char value)
byte bytes = encoding.unicode.getbytes(
value.tostring());
return
"u+" + bytes[1].tostring("x2") + bytes[0].tostring("x2");
如何讓外部exe自動編譯css生成swf參考上篇方法使用命令列。
何時才按需嵌入字型
在設計階段,使用者輸入是不確定的,應該把整個字型檔嵌入到編輯環境滿足使用者的編輯需要。
在發布後瀏覽階段,這時使用者的輸入已經確定,應該只嵌入所需的字元。
整個字型檔嵌入和按需嵌入的比較
整個字型檔嵌入的容量
按需嵌入的容量(根據使用的字元數量變化)
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 動態嵌入字型
概述 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 compi...
Flex之嵌入字型旋轉
最近為了專案需要,研究了一下flex字型旋轉的功能,但是在專案中我們所使用的字型類不是flex的自帶元件如textfield,label等,而是使用了開源專案degrafa的graphictextfiled.這就導致了難度加大。如果僅僅是使用flex的label元件實現字型旋轉功能,僅僅需要做到以下...