2009年12月アーカイブ

うわー前回のエントリーから3ヶ月もたっちまったー。
やべー。読み返すと半端なく稚拙な文章orz
つーかApplicationドメインとしてエントリーすべき内容でした。。。

さて、色々とメモとして残しておきたいことはあるのですが
とりあえずは前回のエントリーの続きを忘れそう(だいぶ忘れている)
なので記しておきます。

前掲のフォントロード時の流れ。

1 - フォントswfを作成する

2 -フォントswfのロード。

3 - フォントを登録

4 - テキストフォーマットでフォントを指定しテキストフィールドに使用する。


■前回の復習

それでは前回までの復習をざっと。

1 - フォントswfを作成する

Flash CS3にてライブラリに新しいフォントを作成し、プロパティからフォント名、フォントを設定する。そしてパブリッシュ。

2 - フォントswfのロード

LoaderContextにcurrentDomainを指定してロード。
このLoaderContextについて前回詳しく調べたわけです。


3 - フォントを登録

さて今回はフォントを登録するところから始めます。
前回のロードするためのスクリプトですでにフォント登録も行ってしまっていますが、
もう一度フォント登録部分のスクリプトを以下に。
	
var FontLibrary:Class = ApplicationDomain.currentDomain.getDefinition("FontSample") as Class;

Font.registerFont( FontLibrary);	
var allFonts:Array = Font.enumerateFonts(false);
trace(allFonts);

この中の「Font」というのはObjectを継承したクラスで
埋め込みフォントを管理するためのクラス。

基本的に
Font.registerFontでロード済みフォント(クラスとして)をグローバルフォントリストに追加すればOK。

Flexの場合だとFontLibrary.FontSampleみたいにしてregisterFontするらしい。

4 - テキストフォーマットでフォントを指定しテキストフィールドに使用する。

次に実際に使用する際だが、以下のスクリプトでどこからでも参照可能でした。
	
var FontLibrary:Class = ApplicationDomain.currentDomain.getDefinition("FontSample") as Class;

var f;Font = new FontLibrary();
var _format:TextFormat = new TextFormat( f.fontName, 12, 0x333333, true);
var _text:TextField = new TextField();
_text.defaultTextFormat = _format;
_text.embedFonts=true;
_text.antiAliasType = AntiAliasType.ADVANCED;


さ、後はテキストフィールドにテキストぶちこむだけっ。

わざわざロードしたフォントクラスをアプリケーションドメインから取り出してんなら
グローバルフォントリストとやらはなんなのかイマイチわからず。
結局最後は動きゃ良いじゃん的な思考で別のことに取りかかってしまいました。。。

時間ができたら、もうちょっと丁寧に調べたいと思います。。。
今回の収穫はApplicationDomainということで!