태그 보관물: Shared font

Runtime font sharing.

우선 공유하려는 폰트를 라이브러리에 등록하고, 아래 그림과 같이 설정한 다음 SWF을 퍼블리시 합니다.
First, register a font in the library, and set the linkage properties like the following image. Then, publish the SWF file.
まず、共有しようとするフォントをライブラリに登録し、下のイメージのように設定して、SWFファイルを出版します。

Sharing a font

이 SWF파일을 Loader 객체로 로드한 다음, 아래 코드를 사용하여 공유된 폰트를 등록, 사용할 수 있습니다.
Load the SWF via Loader object, then you can retrieve the shared font from the loaded SWF.
このSWFファイルをLoader客体を通じてロードした後で、次のコードを使って、共有されたフォントを登録し、使用できます。
var sharedFont:Class = font_loader.contentLoaderInfo.applicationDomain.getDefinition("Gothic") as Class;
Font.registerFont(sharedFont);

Using the shared font.

그러나 여기서 한 가지 문제가 있습니다. 같은 도메인의 경우 상관이 없으나, 서로 다른 도메인에서는 SWF가 로드되었다 하더라도, ApplicationDomain.getDefinition() 메소드를 통해 폰트를 가져올 수 없습니다. 즉, www.mydomain.com의 SWF에서 font.mydomain.com의 SWF파일에 정의된 폰트를 사용할 수 없다는 것입니다.

이 문제를 해결하기 위해서는 LoaderContext.securityDomain 속성을 사용하여, 다른 도메인의 SWF 사이에서 자원에 대한 접근을 허용할 필요가 있습니다. 다음의 코드는 LoaderContext를 사용하여 다른 도메인 사이에 폰트를 공유할 수 있도록 구성한 것입니다.

But there is a problem. If the two SWF files is on the same domain, no problem. If the SWFs are seperated in different domains, you can not access to the shared font with ApplicationDomain.getDefinition() method, though the SWF file is loaded in. So, an SWF file on www.mydomain.com can not use a font in an SWF on font.mydomain.com.

You can use LoaderContext property, to allow access to assets in a different domain’s SWF file. The following code shows how it works.

でも、一つ、問題があります。同じドメインなら問題ないが、二つのSWFファイルが違うドメインにあると、そのSWFをロードしても、ApplicationDomain.getDefinition()メソッドを使って共有フォントにアクセスすることが出来ないんです。

この問題を解決するために、LoaderContext.securityDomain属性を設定して、他のドメインにあるSWFファイルの資源にアクセスを許容しなければなりません。次のコードは、LoaderContextを使用して、違うドメインからフォントを共有しに作成したものです。

Runtime font sharing. 더보기