2012-01-16 2 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; 

를 다음 텍스트가 포함 된 글꼴 제대로 표시하지만, 별도의 파일에 코드를 이동하고 난에서 발견 된 정보에 따라 로더를 추가

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); 
} 

은에 던져 오류가 있습니다 : 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/

로더 코드가 - 링크를하면 폰트를로드하지 않습니다전달되는 매개 변수가 null 일 수 없다고 말하는 라인. 디버그 모드에서 확인한이 문제는 클래스가 있지만 모든 콘텐츠가없는 것으로 보입니다. FontLibrary 클래스는 인스턴스화되지만 디버거의 하위 항목은 _prototype이므로 embeddedFont 속성에 액세스하려고하면 정의되지 않은 값이 반환됩니다.

현재 글꼴 SWF는 주 프로젝트의 assets 폴더에 있으므로 보안 제한이 있어야한다고 생각하지 않습니다. 말했듯이 SWF로드 부분이 작동하는 것처럼 보입니다.

내 진단을 방해하는 한 가지 점은 문제가 글꼴 SWF가 제대로 만들어지지 않고 콘텐츠가 없거나 메인 앱에서로드 할 수없는 경우 확실하지 않다는 것입니다. 적어도 그 범위를 좁힐 수있는 모든 도움을 주시면 감사하겠습니다.

나는이 문제에 잠깐 들러 붙어서이 문제를 해결할 수있는 모든 도움을 주시면 감사하겠습니다. 응용 프로그램의 핵심 부분입니다.

미리 감사드립니다.

답변

1

구글에서 끝나는 사람을위한 빠른 메모는 문제가 상단 블록의 embeddedFont 상수 정의에서 정적 키워드를 잃어 버렸습니다. 그래야합니다 public static const embeddedFont:Class;

희망이 있으면 도움이 될 것입니다.