autotext
これは何?
Macromedia Flashでルビ付きテキストを簡単に表示するためのプログラムです。
使い方
スクリプトの記述
autotext.as このスクリプトファイルを.flaと同じフォルダにおいてください。
そして、次のようなアクションを記述します。
#include "autotext.as"
_root.onLoad = function(){
ATinit(); //初期化
//各種データ 必要であれば再設定
//ATx = 10; //画面上のX位置
//ATy = 10; //画面上のY位置
//ATbackground = 0xEEEEFF; //背景色
//ATmx = 10; //余白X
//ATmy = 10; //余白Y
//ATwidth = 500; //横幅
//ATheight = 300; //縦幅
//ATindent = 3.2; //話者表記の文字数。小数点指定も可
//ATxspace = 4; //単語と単語の間隔
//ATyspace = 8; //行と行の間隔
//ATbasez = 200; //描画優先順位
//ATmaxwords = 1000; //最大テキスト内単語数
//ATdelimiter = ":"; //話者の区切り文字
//ATHfont = "SimHei"; //漢字のフォント名
//ATPfont = "Arial"; //ピンインのフォント名
//ATDfont = "MS ゴシック"; //単語意味のフォント名
//ATHsize = 20; //漢字の文字大きさ
//ATPsize = 12; //ピンインの文字大きさ
//ATDsize = 16; //単語意味の文字大きさ
//ATHcolor = 0x333399; //漢字の文字色
//ATPcolor = 0x333399; //ピンインの文字色
//ATScolor = 0xFF0000; //漢字選択中の文字色
//ATDcolor = "#000000"; //単語意味の文字色。指定方法が他と違います
//ATDbackground = 0xFFFF99; //単語意味の背景色
//ATDborder = 0x666600; //単語意味の枠色
//ATdelta = 10; //スクロールの移動量
[ここにデータを打ち込む]
//描画
ATdraw();
}
各種データの部分は、デフォルトのままで使う場合は消してください。カスタマイズしたい場合は、コメントアウト「//」をはずして、具体的な値を記述してください。
実際のデータ
以下のように準備してください。(Pukiwikiの制限のため、画像を貼り付けています)
- 語句をすべて半角スペースで切り分けてください。句読点と文字の間にもスペースが必要です。
- 同じ単語に別の意味のポップアップを表示させたい場合は、単語の後ろに*1,*2というように「*+区別文字列」を AThanzi と ATdictionary 双方に書いてください。「*+区別文字列」は実際には表示されません。
フォントの準備
アンチエイリアスしたフォントでないと見た目がイマイチ(注:中国語の場合)なので、すべてフォントを埋め込みます。
ATHfont = "SimHei"; //漢字のフォント名 ATPfont = "Arial"; //ピンインのフォント名 ATDfont = "MS ゴシック"; //単語意味のフォント名
ここで指定したフォントを埋め込みます。
適当なテキストを配置して、「ダイナミックテキスト」とします。そして「文字...」ボタンをクリックして埋め込む文字種を選びます。
- 中国語(漢字)の場合:大文字、小文字、数字、句読点記号、簡体字中国語
- 中国語(ピンイン)の場合:大文字、小文字、数字、句読点記号、基本ラテン、ラテンI、ラテン拡張A,B,追加(など)
- 日本語の場合:大文字、小文字、数字、句読点記号、日本語
つまり、実際に表示するテキストの文字だけでなく想定される全ての文字を埋め込むため、生成されるFlashファイルは大きくなってしまいます(たとえば上記の場合4.5MB程度です)。
このテキストはフォントを埋め込むためだけに使いますので、インスタンス名は不要で、実際に文字は見えなくて構いません。
細かい説明
- ルビ付きテキストが表示可能です。例では中国語とピンインですが、日本語とひらがなも可能です。
- ベースは語学テキストに頻出する「話者会話」タイプの表示を想定しています。つまり、各文1行目に話者名が出て、実際の会話内容はインデントされてそろって表示されます。
- 話者テキストではない文章を利用する場合は ATindent を 0 にしてください。
- 単語(ポップアップ)は原則 ATDfont のフォントで表示されますが、「+H+」と「++」でくくった部分は ATHfont のフォントで、「+P+」と「++」でくくった部分は ATPfont のフォントで表示されます。
- 一応禁則処理を行っています。「,。.?!:」に対応しています。
現状の問題点
- マウスを動かしたときのCPUパワーが100%に近くなります。地球温暖化対策に悪いかもしれません
- 単語ポップアップがスクロールバーの下に隠れてしまいます。描画レイヤーを指定しているのですがうまく反映されていません。
- やはりファイルが大きいです。その文書で利用する漢字集合に絞り込んだフォントがあればいいのですが。ちなみにフォントを埋め込むことはライセンスには違反しないようです。具体的には、現状のフォントには埋め込み禁止フラグ機構が用意されているので、それを立てていない(=禁止していない)フォントは、埋め込みが許されている、と解釈するようです。
Koichi KAMICHI -- fonts.jp