TsuyoshiKusakaの日々思うこと その2

(株)クエステトラに所属、ITエンジニア、テニス好き、地域のお手伝いをいろいろ、@tsuyoshikusaka

Flashで文字化け

Windows2000環境下でFlashが文字化けする(日本語が□で表示される)という話があった。

原因はFontLinkがらみのようで、再現調査などから以下のページにあるレジストリ(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink)変更の対処により解決はできそう。
http://blog.livedoor.jp/blackwingcat/archives/91125.html

ただ、いくつか気になったのでメモ。
・Flashロード時には文字化けは発生しない。が、そのFlash内でZoomを使ってCanvasの拡大縮小をしていて、その縮尺変更によってCanvas上のText系オブジェクトの日本語が文字化けすることがある(必ず化けるわけではないが、一旦化けると化けっぱなし)
・拡大縮小時にそれらのオブジェクトの再描画をすると文字化けがなおることがある(必ずなおるわけではないが、なおることが多い)
・XPでもFontLinkの仕組みはあるが、基本的に今回の問題は発生しない。ただし、レジストリのFontLink情報をあえて消すとWindows2000とほぼ同様に発生する。ただし、□が正方形じゃなく長細いものになる

#そもそもFlashの拡大縮小で表示される文字の改行位置がサイズによって微妙に異なるので、FlashPlayerがフォントを割り当てる処理が結構ざっくりしてるっぽい気がした。まあ縮尺変更のピッチの細かさの割に使えるフォントが限られているだろうから仕方ないのかもしれないが