之前用過haxe+swfll 快速的生成帶有嵌入字型的SWF檔來做到字型載入的動作
但是這樣每次都要載入一個新完整的字型檔
經過努力之後,發現可以透過拆解SWF與 loader.loadBytes()的方式載入字型檔
所以目前已經可以做到只需要載入目前沒有的字的字型就可以了
運作原理大致上是
1. 先載入一個 用 swfill+haxe做出來的包含了字型的swf檔
2. 將載入的SWF利用ByteArray分析&分解
3. 當發現需要用到的字型,不在我剛剛讀進來的字型時,
就即時去讀取server上的字型資訊
4. 當 字型資訊 被載入後,便與剛剛 我們分解好的字型ByteArray作組合
5. 將組合好的字型ByteArray,透過loader.loadBytes 載入
6. 重新註冊字型,如此我們便可以得到包含我們需要字的字型了
細部的文件正在撰寫中,有興趣的朋友可以先參考下面的連結
另外請特別注意,這邊實做的是DefineFont3,並不是flash player10 新支援的DefineFont4
Demo:
一次載入一個字
http://www.tkalu.com/tmp/flash-dynamic-font-loader/demo_1
可以合併數個字型變成一個flash中的新字型
http://www.tkalu.com/tmp/flash-dynamic-font-loader/demo_2/
我也來訪問
看看一下你分享的原始碼
corAusir 程式逗設計
提供平面設計 與 程式設計 的資料~
blog.corausir.org
或點我的名字來我家 ^^