2012-01-16 11 views
1

私は、ユーザーが開く特定のドキュメントで使用されているフォントに基づいてフォントを動的に読み込む必要があるアプリケーションで作業しています。フォントはRichEditableTextControlで使用されるので、CFF形式である必要があります。動的に読み込まれた埋め込みフォントswfが認識されない

私はコードを追加した場合:メインSWFに

[Embed(source="/assets/fonts/AvenirLTStd Book.otf", 
fontFamily="EmbedAvenir LT Std 45 Book", 
mimeType="application/x-font", 
embedAsCFF="true")] 
public const embeddedFont:Class; 

を、テキストが埋め込みフォントで正しく表示されますが、別のファイルにコードを移動し、私が見つけた情報に従ってローダーを追加しますリンク次のフォントロードされません - http://www.scottgmorgan.com/blog/index.php/2007/06/18/runtime-font-embedding-in-as3-there-is-no-need-to-embed-the-entire-fontset-anymore/

ローダコードは次のとおりです。

private function loadFont(url:String):void { 
    var loader:Loader = new Loader(); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, fontLoaded); 
    loader.load(new URLRequest(url)); 
} 

private function fontLoaded(event:Event):void { 
    var FontLibrary:Class = event.target.applicationDomain.getDefinition("FontAvenirLTStd") as Class; 
    Font.registerFont(FontLibrary.embeddedFont); 
} 

で投げエラーがあります行は、渡されるパラメータをnullにすることはできません。私はデバッグモードでチェックして、問題はクラスが存在するように思われますが、コンテンツはありません。 FontLibraryクラスはインスタンス化されますが、デバッガ内の唯一の子エントリは_prototypeなので、embeddedFontプロパティにアクセスしようとするとundefinedが返されます。

現時点では、フォントSWFはメインプロジェクトのassetsフォルダにありますので、セキュリティの制限があるとは思わないので、私が言ったようにSWF読み込み部分が動作するように見えます。

私の診断を妨げていることの1つは、フォントSWFが正しく作成されておらず、コンテンツがなくても、メインアプリケーションが読み込めないのかわからないということです。少なくともそれを狭めることができれば、どんな助けもありがたいです。

私はこの問題に長続きしていないので、私はこれを得ることができるすべての助けに感謝し、それはアプリケーションの重要な部分です。

ありがとうございます。

答えて

1

Googleからここまで来た人には、のstaticキーワードがトップブロックのembeddedFont定数の定義から失われてしまうという問題がありました。それはあったはずですpublic static const embeddedFont:Class;

これは誰かを助けることを望みます。

関連する問題