즉, FLEX 3.0 내부에서 FONT를 Embed 하는 것은 폰트 파일 안에 포함된 전체 Character Set을 Embed 하는 것이기 때문에 용량이 클 수 밖에 없다.
그러나 FLASH 에서 FONT Range 설정으로 실제로 쓰게될 Character Set만 Embed 하게 되므로 전체 용량은 줄어 들 수 밖에 없다.
정말 좋은 팁이군 ㅋㅋ
히밤.. 윤고딕 폰트 크기가 1.77MB 다. 지금 Application 전체 용량이 1MB 가 안되는 이시점에서 이게 웬 귀신 풀 뜯어 먹는 애기란 말인가...
망설일것 없이 바로 적용해야지 !
플레시를 이용해서 SWF 폰트 만들기
- Text를 하나 생성한다. 반드시 글이 들어가야 한다. 텍스트의 이름을 넣어주면 차후 사용하기 편리할 것이다.
- 원하는 Font Family를 선택한다.
- Dynamic Text를 선택한다.
- 플렉스에서 advanced anti-aliasing을 사용하고 싶으면 Anti-Alias for Readability나 Custom Anti-Alias를 선택해 준다.
- Embed버튼을 누른다.
- [중요]Character Embedding창에서 원하는 Range를 선택해 준다.
- Range가 추가될 때 마다 용량이 커진다.
- 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