2010년 10월 28일 목요일

SWF Font Embed

Range 설정으로 전체  Font에 대한 SWF 파일 사이즈가 줄어든다.
즉, FLEX 3.0 내부에서 FONT를 Embed 하는 것은 폰트 파일 안에 포함된 전체 Character Set을 Embed 하는 것이기 때문에 용량이 클 수 밖에 없다.
그러나 FLASH 에서 FONT Range 설정으로 실제로 쓰게될 Character Set만 Embed 하게 되므로 전체 용량은 줄어 들 수 밖에 없다.
정말 좋은 팁이군 ㅋㅋ
히밤.. 윤고딕 폰트 크기가 1.77MB 다. 지금 Application 전체 용량이 1MB 가 안되는 이시점에서 이게 웬 귀신 풀 뜯어 먹는 애기란 말인가...
망설일것 없이 바로 적용해야지 !

플레시를 이용해서 SWF 폰트 만들기


font

  1. Text를 하나 생성한다. 반드시 글이 들어가야 한다. 텍스트의 이름을 넣어주면 차후 사용하기 편리할 것이다.
  2. 원하는 Font Family를 선택한다.
  3. Dynamic Text를 선택한다.
  4. 플렉스에서 advanced anti-aliasing을 사용하고 싶으면 Anti-Alias for Readability나 Custom Anti-Alias를 선택해 준다.
  5. Embed버튼을 누른다.
  6. [중요]Character Embedding창에서 원하는 Range를 선택해 준다.
    • Range가 추가될 때 마다 용량이 커진다.
  7. TypeFace(Bold, Italic)를 여러가지 만들고 싶으면, 원하는 TypeFace별로 1~6과정을 반복한다.


 Flex Application에 SWF파일 불러오기

SWF파일 : assets 폴더 안에 myFont.swf인 경우

1. CSS에서 불러오기
@font-face{
src:url("../assets/myFont.swf");
fontFamily : "Yoon 윤고딕 530_TT";
}

2.MXML에서 불러오기
[Embed (source='../assets/myFont.swf', fontName='Yoon 윤고딕 530_TT')]

1, 2 방법 중 편한것을 사용하자. 2의 방법을 사용하면 폰트를 제어하기가 더욱 편리하다.
이렇게 하면 이제 윤고딕 530을 쓸 수 있다.

fontFamily에서 이름은 아무 이름이나 쓸 수 있는 것이 아니다.
플레시에서 노출되는 이름을 그대로 써 주어야 한다.
그렇지 않으면 아래와 같은 오류가 발생할 것이다.
(Errors : font 'OOO' with normal weight and regular style not found, Unable to transcode OOOOO.swf.)

advancedAntiAliasing 속성은 적지 않는다. 이미 플레시에서 정의했으므로 플렉스에서 정의할 수 없다.


참고 :  Help > Adobe Flex 3 Help > User Interfaces > Using Fonts > Embedding fonts from SWF files

댓글 없음:

댓글 쓰기