id:miyagawaさんが紹介して以来日本でも爆発的人気(?)のChumbyで日本語を表示させる方法を紹介します。
ただ、今回の方法は日本語フォントを全部Widgetのswfに埋め込んでしまうというゴリ押し法で、最終的にWidgetのswfのサイズは2MBを超えてしまうためChumbyサイトにアップロードすることはできません(アップロードするWidgetの最大サイズは100KBらしい)。Chumbyサイトにアップロードできないのに、どうやってチャンネルに追加するん?という疑問が湧いてくるのですが、これはローカルに置いたWidgetをチャンネルに加える方法で解決できます。
というわけで、方法を紹介します。Flashは超初心者なので間違い等あるかもしれませんが、その際はご指摘いただけるととうれしいです。
用意するもの
手順
- swfmillでフォントをライブラリとして埋め込んだswf(たとえば、font.swf)を作成する
- FlashDevelopのproject設定でInjectionをEnableする。Input SWF fileに先ほどのfont.swfを指定。
- FlashDevelopでプロジェクトをビルドする。
- フォントが埋め込まれたWidgetのswfが出来上がる。
- USBメモリを挿した後/mnt/usbにWidgetのswfをコピー
- profile.xmlを/mnt/usbに作成 ->chumby trick参照
- チャンネルに勝手に自作Widgetが追加される
以上の手順を踏めば、ローカルWidgetで日本語表示をすることが可能です。上の写真は、TwitterのUpdateを表示しているローカルWidgetです。
ASファイル作成で気をつけること
asのテキストフィード名がtextfieldだとすると、"textfield.embedFonts = true;"する。
フォント名は、swfmillで設定したfont idを指定する。
swfmillで使用したXMLファイル
<?xml version="1.0" encoding="utf-8"?> <movie width="320" height="240" framerate="12"> <background color="#000000"/> <library> <font id="mika" import="fonts/mika.ttf" /> </library> <frame/> </movie>
ChumbyにCJKフォントは組み込まれる予定らしい
ところで、「日本語フォントを組み込んだらswfがでかくなりすぎてアップロードできないんだけどどうしよー?」とChumbyForumで聞いてみたところ「アップロードはできないからローカルで使ってね。でも将来的にCJKフォントをLinuxに組み込む予定だよ、すぐじゃないけど…」といった感じの返事がありました。ほー、いちおうCJKフォントも組み込まれる予定らしい。ちなみにForumに書き込まれた質問はDuaneが十中八九返答してくれているようです。Chumbyサポートもすげー。
we're looking into including some CJK fonts into the device itself so that you would not have to embed them, but that's not going to happen in the short term.
Chumby感想いろいろ
- ローカルWidgetだとConfigWidgetが使えない(?)から、Twitterのユーザ名等を入力するうまい方法がない。Chumbyのソフトウェアキーボードでも使うかな。。。
- TrueTypeフォントを外部swfにして動的に呼び出すとか言う方法があるらしいので毎回フォントを埋め込む必要もないのかも。
- てか、ソースが公開されてるから、自前でCJKフォント組み込んでしまうのが早い?
- .flaサンプルはAdobeのFlashもってないから全然参考にできなくて残念
- 結局as2がんばれということ?
などなど疑問や感想は尽きませんが、Chumbyなかなか楽しいです。ソースコードだけじゃなくて回路図まで公開されてるあたりも素敵です。as3とかHTML/JSでWidgetをつくれるようになれば、もっといろんなWidgetつくられるようになるのかなー。