2009年03月07日
ランタイム・フォント・ローディング @ Flash
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化しておけば、何かと便利かも。
関連日記
- 2008年01月11日 Flex Builder + Flash CS3でPapervision3D (5231)@ Flash
- 2008年09月26日 初めてのPixel Bender作品 (4784)@ Flash
- 2010年11月21日 WindowsでiOSアプリ開発 (3664)@ Flash
- 2009年04月26日 Flash/Flexの開発に必要な幾つか基本的なモノ (3625)@ Flash
- 2008年08月12日 Getting Started With AIR (3495)@ Linux
- 2009年04月07日 gotoandlearn.comにFLARToolKit (3452)@ Flash
- 2009年05月08日 De MonsterDebugger (2515)@ Flash
- 2009年12月17日 gotoandlearn.com - Sneak Peak of Flash CS5 (2464)@ Flash
- 2009年06月01日 gotoandlearn.com「Flash Catalyst and Flex 4」 (2430)@ Flash
アマゾン広告
この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。