Mingを使用すれば簡単にFlashのswfファイルを作成することができます. 本ページではLinux上でのMing/perlのインストール,および簡単な作成法を紹 介したいと思います.
Mingの本家サイトはhttp://ming.sourceforge.net/ です.現在の最新版は 0.3 (2006/02/15)となっています.ここから次のファイルをダウ ンロードしてください.perlモジュールは別ファイルになりました.
ming-0.3.0.tar.gz ming-perl-0.3.0.tar.gz ttf2fft-1.0.tar.gz
まず,Mingではいくつかのライブラリを使用しますので必要なら本体の前 にそれらをインストールしておきます.生成されたswfのサイズを小さくする zlib,png画像を扱うlibpng,gif画像を扱うlibungifです.これらを使用しな い場合は,設定ファイルを修正する必要があるので後で説明します.ちなみに debianの場合は以下のパッケージが必要でした.
zlib1g-dev libpng-dev libungif4-dev
本体とperlモジュールのファイルを展開します.
$ tar zxf ming-0.3.0.tar.gz $ tar zxf ming-perl-0.3.0.tar.gz $ cd ming-0.3.0
先程述べたように,zlibなどのライブラリが必要ない場合は src/ming_config.h を修正します.
#define USE_ZLIB 1 #define USE_GIF 1 #define USE_PNG 1
必要のないライブラリの値を1から0に書き換えてください.
次にコンパイルし,インストールしますが,perl/Ming だけが必要な場合 は本体をインストールしなくてもよいみたいです.perl_ext のディレクトリに移動し,通常のperlモジュールと同じ方法でインストールし てください.
$ cd perl_ext $ perl Makefile.PL (本体がコンパイルされる) $ make (perlモジュールがコンパイルされる) $ make test (正常に動くかチェック) $ su $ make install
これでperlモジュールのインストールは終わりです.次の日本語フォント を扱う準備をします.フォントはTrueType形式のものを用意し,それをMingか ら使用できる形式にコンバートします.簡単に図示すると,
*.ttf ---------> *.fft --------> *.fdb ttf2fft makefdb
順番は逆になりますが,makefdbのコンパイルから説明します.makefdbは ming-0.3.0 に付属しています.
$ cd ming-0.3.0/util $ make makefdb
makefdb がこのディレクトリにできます.
ttf2fft は最初にダウンロードした ttf2fft-1.0.tar.gz を展開し, コンパイルします.
$ tar zxf ttf2fft-1.0.tar.gz $ cd ttf2fft $ make
ttf2fft がこのディレクトリにできます.
さて日本語をフォントを用意します.ここではKochiGothic-Regular.ttfを 例に進めていきます.まずttf2fftを使用してフォントの情報を表示させます.
$ ./ttf2fft -l KochiGothic-Regular.ttf There is 1 face in this file. ----- Face number: 0 ----- family: Kochi Gothic style: Regular charmaps: 0: platform: Apple Unicode, encoding: Unicode 2.0 1: platform: Macintosh, encoding: Roman 2: platform: Microsoft, encoding: Unicode
MingではUnicodeのコードマップを使用するので,上記では0か2のマップを 選択して,fft形式に変換します.
$ ./ttf2fft -e 0 KochiGothic-Regular.ttf Converting font KochiGothic-Regular.ttf family: Kochi Gothic style: Regular using charmap: 0: platform: Apple Unicode, encoding: Unicode 2.0 ....
これで KochiGGothic.fft というファイルができました.最後に makefdb を使用してfdb形式に変換します.
$ makefdb KochiGGothic.fft Found DefineFont2 block at offset 23 Block length: 3922457 Writing Kochi Gothic.fdb, 3922459 bytes
ようやく``Kochi Gothic.fdb''ができました.ただ何故かファイル名に空 白が含まれていて気持悪いのでリネームすることにします.
$ mv Kochi\ Gothic.fdb KochiGothic.fdb
とりあえず,まずはソースだけ(文字コードはUTF8で保存すること)
#!/usr/bin/perl use SWF qw(:ALL); $string = "サンプルスクリプト"; SWF::setScale(20.0); SWF::setVersion(6); my $m = new SWF::Movie(); $m->setBackground(0xff,0xcc,0x66); $m->setDimension(200, 100); my $f = new SWF::Font("KochiGothic.fdb"); my $t = new SWF::Text(); $t->setFont($f); $t->setHeight(20); $t->setColor(0x00,0x00,0x66); $t->addUTF8String($string); my $height = $t->getAscent(); my $width = $t->getUTF8StringWidth($string); my $i = $m->add($t); $i->moveTo(10, 60); my $s = new SWF::Shape(); $s->setLine(2, 0, 0, 0); $s->setRightFill(0xcc, 0xcc, 0xcc, 128); $s->movePenTo(10, 60); $s->drawLine(0, -$height); $s->drawLine($width, 0); $s->drawLine(0, $height); $s->drawLine(-$width, 0); $m->add($s); $m->save("sample1.swf");
Ming0.3で日本語を使用するときは,$t->addString($text)でなく $t->addUTF8String($text) を使用することに注意してください. またテキストの幅を取得する際も$t->getUTF8StringWidth($text) を使用 してください.
Up(P): Home
間違え,勘違い,スペルミスなどは
まで
Last modified: Fri Feb 17 20:48:08 JST 2006