Month: March 2009

即時組合Flash嵌入式字型

Posted by – 2009-03-26

之前用過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/