フォントシンボルのライブラリ共有化

| コメント(0) | トラックバック(0)

SWF上のテキストフィールドに入力した内容を、別のテキストフィールドに特定のフォントで表示させる実験。
今回の実験では、下記の項目をあえて必須要素としました。

  1. 埋め込みフォントを使用し、フォントがインストールされていないPCでも、見た目が変わらないようにする。
  2. フォントシンボルを共有ライブラリとして外部SWFに置く。つまりテキストフィールドに入力させるSWFと、フォントシンボルの入ったSWFをそれぞれ別々にする。

■制作上の注意点

  1. フォントシンボルを共有ライブラリSWFにする必要がある。
  2. 共有ライブラリのシンボルの読み込みは、それが配置される直前のフレームである。
  3. つまりムービーがロードし終わっても、共有ライブラリのフォントシンボルはまだ読み込まれていない。
  4. それを回避するため、間にもう一つ共有ライブラリを読み込むためだけのSWFをはさむ。
  5. 結局、合計3つのSWFが必要となる。
    • フォントシンボル共有ライブラリSWF
    • 共有ライブラリSWFをからのMCに読み込み、キャッシュさせるSWF
    • テキストフィールドに入力、表示させるSWF

■フォントシンボル共有ライブラリSWFの作成

  1. 空のテキストフィールドを作成、使用したいフォントを埋めこむ。「例:A-OTF 新ゴ Pro M」
  2. 識別子:myFont
  3. リンケージは下記のようにチェック
    • ActionScriptに書き出し
    • ラインタイム共有用に書き出し
    • 最初のフレームに書き出し
  4. SWFにパブリッシュ

■キャッシュさせるSWFの作成

  1. 先に作成した、外部ライブラリの読み込みでmyFontを読み込み。
  2. 識別子:myFont
  3. リンケージは下記のようにチェック
    • ラインタイム共有用に読み込み
  4. ステージ上に配置
  5. SWFにパブリッシュ

■テキストフィールドに入力、表示させるSWFの作成

空のMCを作成してステージ上に配置。インスタンス名「emptyMC」とする。
メインのタイムラインの1フレーム目に下記のスクリプトを記述。

this.stop();
var loaderListener:Object = new Object();
loaderListener.onLoadInit = function() {
_root.nextFrame();
}var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(loaderListener);
loader.loadClip("./キャッシュさせるSWFのファイル名", emptyMC);

2フレーム目に下記のスクリプトを記載

this.stop();this.createTextField("_txt",10, 10, 210, 200, 120);
this._txt.border = true;
this._txt.type = "input";
this._txt.selectable = true;
this._txt.multiline = true;
this._txt.wordWrap = true;
this._txt.text="テキストフィールドができました";var my_fmt:TextFormat = new TextFormat();
my_fmt.font = "A-OTF 新ゴ Pro M";
this.createTextField("_txt2″, this.getNextHighestDepth(), 10,10, 200, 120);
this._txt2.border = true;
this._txt2.wordWrap = true;
this._txt2.embedFonts = true;
this._txt2.setTextFormat(my_fmt);

テキストフィールド1「_txt」に入力した内容を、テキストフィールド2「_txt2」に表示するボタンを作成する。

on (release) {
_txt2.text = _txt.text;
_txt2.setTextFormat(my_fmt);
}

今回のスクリプトの例では、フォントは「A-OTF 新ゴ Pro M」を埋め込んでいるが、別に何のフォントでもかまいません。
ただし、日本語フォントは文字数が多く、それだけ容量が大きくなるので注意が必要です。

トラックバック(0)

トラックバックURL: http://www.lepracaun.info/mt4/mt-tb.cgi/110

コメントする

このブログ記事について

このページは、lepracaunが2008年4月29日 09:15に書いたブログ記事です。

ひとつ前のブログ記事は「第2回大阪IT飲み会に参加してまいりました。」です。

次のブログ記事は「画像拡大スクリプト「FancyZoom」でレイアウトが崩れる件」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。