14 March '2008 - 18:59 | 技術動向 Chumby に「たんじょうび おめでとう!!」と表示する方法
Chumby に Happy Birthday と表示するウィジェットは 10秒で作れるけれど、同時に子供たちも観るので、どうせなら「たんじょうび おめでとう」とひらがなで表示したい。そういう余計なことをつい考えてしまい勝ちなお父さんたちに、このエントリを捧げます。
必要なものは、haxe と swfmill と適当な日本語フォント。
以下、HappyBirthday.hx の中身。
import flash.MovieClip;
class HappyBirthday {
public function new(mc:MovieClip) {
var tff:flash.TextFormat;
tff = new flash.TextFormat();
tff.color = 0x9E0000;
tff.bold = true;
tff.size = 42;
tff.font = "Nihongo";
tff.align = "center";
mc.createTextField("tf1", mc.getNextHighestDepth(), 0, 50, 320, 60);
mc.tf1.embedFonts = true;
mc.tf1.text = "たんじょうび";
mc.tf1.type = "dynamic";
mc.tf1.border = false;
mc.tf1.setTextFormat(tff);
mc.createTextField("tf2", mc.getNextHighestDepth(), 0, 110, 320, 60);
mc.tf2.embedFonts = true;
mc.tf2.text = "おめでとう!!";
mc.tf2.type = "dynamic";
mc.tf2.border = false;
mc.tf2.setTextFormat(tff);
}
public static function main() {
var app:HappyBirthday;
var mc:MovieClip;
mc = flash.Lib.current;
app = new HappyBirthday(mc);
}
}
つぎに font.xml の中身。
<?xml version="1.0" encoding="utf-8" ?>
<movie version="8">
<frame>
<library>
<font id="Nihongo" import="/Library/Fonts/Hiragino.otf"/>
</library>
</frame>
</movie>
ソースはこれだけ。
あとは、以下を実行。
$ swfmill simple font.xml > FontModule.swf
$ haxe -swf-version 8 -swf-header 320:240:12:FFFFFF -swf-lib FontModule.swf
-swf HappyBirthday.swf -main HappyBirthday HappyBirthday
要するに、日本語フォントを組み込んでしまうという、それだけのこと。そのうちソフトウェアアップデートで日本語フォントも組み込まれるみたいだけれど、今のところはこれが一番簡単かと思う。
ちなみに、ウィジェットのサイズは 100Kb 以下にしろって Chumby のサイトには書いてあるけれど、それでは日本語フォントを組み込めないのでさくっと無視。ロードに時間がかかりすぎるので軽いフォントにこしたことはないけれど。
私はそこまで出来ないのでフラッシュ作ってでUSBから読ませました。
chumbyjapan.com
Goro - 15 March '2008 - 17:08
ひろしま - 16 March '2008 - 09:32