2009年03月07日

ランタイム・フォント・ローディング @ Flash

img1 img2 img3

gotoAndLearnにランタイム・フォント・ローディングが公開されてました。

フォントをエンベッドしてswfを作り、そのswfを別のファイルで読み込んでフォントを表示する方法をFlash CS4を使って紹介しています。Flash CS4ですが、多分Flexでも出来そうな気がします。ビデオの中でもそれらしき事を言っていた様な・・・。

ただ、英語圏の場合、アルファベットのフォントだと文字数が少なくて、この様な方法で実用になるのですが、日本語フォントの場合、ファイルサイズは勿論、ライセンスの問題があるので、そのまま応用は難しそうな気がします。

gotoandlearn.com - Runtime Font Loading
>>関連リンク

そうそう、動画の途中で確認用に使っていたデコンパイラーはSothink SWF Decompilerですね。フォントの埋め込み確認には確かに丁度良さそう。

SWF Decompiler, Flash Decompiler, SWF To FLA Converter, Recover FLA
>>関連リンク

それからUnicodeの範囲指定に使っていた「Unicode Code Converter v6」は下記にあります。何故かFirefoxで正しく表示できなかった。Safariでは大丈夫でした。

ishida >> utilities: Unicode code converter
>>関連リンク


・・・


試しにFlex 3でもやってみました。

先ずはフォントを格納するFontEmbed.swf。(読み込むフォントの範囲を増やしてます。)

package
{
import flash.text.Font;
import flash.display.Sprite;

public class FontEmbed extends Sprite
{

[Embed(systemFont='cinecaption',fontName='Cinecaption', mimeType='application/x-font',unicodeRange='U+0041-U+005A,U+0061-U+007A')]
public var cinecaption:Class

public function FontEmbed()
{
flash.text.Font.registerFont(cinecaption);
}

}
}


次に、フォントを表示するFontTest.swf。

package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFormat;

public class FontTest extends Sprite
{
public function FontTest()
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT,fontLoaded);
loader.load(new URLRequest("FontEmbed.swf"));


}

public function fontLoaded(e:Event):void{
var tf:TextField = new TextField();
tf.width = 800;
tf.embedFonts = true;
tf.defaultTextFormat = new TextFormat("Cinecaption",60,0x000000);
tf.text = "RUN TIME FONTS";
this.addChild(tf);
}

}
}

このサンプルでは敢えて日本語フォントの中からアルファベットを抜き出してエンベッドしてます。使ったフォントは「しねきゃぷしょん」です。

Chiphead
>>関連リンク

試しにひらがなをエンベッドしてみたところ、問題なく使用できました。当然か。

ちなみにフォントを全てエンベッドした場合のファイルサイズは、1.9Mでした。こんなモノなのか。意外と実用になるかも。問題はライセンスの部分ですね。今回実験に使用した「しねきゃぷしょん」は再配布OKだし、商用利用も作者に連絡すれば良いので、swfにエンベッドして使えそうです。他にもライセンス的に自由に使えるモノをswf化しておけば、何かと便利かも。

閲覧数: 4893 / はてなブックマークusers

blog comments powered by Disqus

関連日記

アマゾン広告

この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。

▼日記検索

Mac

Shade

3D

Flash

ゲーム

ウェブ

音楽

映画

デジカメ

Windows

Linux

携帯電話

テレビ

広島

電子工作

iOS

▼ 最近のトラックバック

▼ランキング

▼関連サイト