IT

플래시 폰트 임베드하는법

by MoA posted Aug 24, 2006
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
1.
embedFont 는 기본.
텍스트필드의 character option으로 폰트외곽선 정보를 포함시키면 가장 안전하다.
그 다음에 property 옵션에서 Alias text 체크하면 된다.

결국 스태틱 텍스트 쓰는 것과 똑같은 효과를 얻을 수 있다.
파일 사이즈가 기하급수적으로 증가하면 뭐 어떤가! 안전하다는데!! 와핳ㅎ

2.
폰트 심볼 등록.
영문픽셀폰트의 경우 폰트 심볼을 실시간 공유하지 않고
해당 swf 파일에 폰트 심볼을 등록해서 퍼블리시하더라도 용량이 크게 늘지는 않는다.

폰트심볼을 등록할 때 default 상태에서 심볼명이 "Font 1"로 지정되는데
플래시 변수 명명법에 따라 변경해주는 것이 안전하다.
즉 첫글자 대문자를 소문자로 바꿔주고 빈칸을 없애준다.
예를 들면... 폰트의 실제이름과 똑같이 지정해주면 더 헷갈릴 수 있기 때문에- _-);
"font_***" 식으로 지정.

픽셀폰트의 경우 anti-aliasing을 적용하지 않고 쓰려면
폰트심볼을 등록할 때 Alias text 옵션을 체크해준다.

3.
폰트 심볼을 실시간 공유할 경우 문제가 복잡해진다.
예를 들어 외부 라이브러리에서 폰트 심볼을 import 시킬 경우
심볼의 연결식별자는 import를 위한 것이기 때문에 action script에서는 이것을 읽지 못한다.
즉 해당 심볼에 export for action script / export in first frame 옵션을 지정해주어야 하는데
이 옵션들은 import for runtime sharing 과 배타적인 옵션이다.

다시 말해서 import for runtime sharing 옵션을 해지해야
export for action script / export in first frame 을 지정해줄 수 있는데
이렇게 하면 실시간 공유가 아니라 해당 폰트심볼을 swf 파일에서 그냥 퍼블리시하게 된다.

따라서 폰트심볼은 import 상태로 두고
따로 무비클립을 만들어서 이 폰트심볼을 사용하여 텍스트필드를 하나 그려서 만든 다음
이 무비클립에 연결식별자를 export for action script 옵션으로 지정해주면 된다.

여기서 또 변수가 발생하는데 (아 나 참 이거 이해가 안돼)
이렇게 해서 실시간 공유되는 폰트심볼이라면 그냥 폰트이름을 써서 코딩해야 한다.
그런데 폰트심볼을 등록할 때 alias text 옵션을 적용했을 경우에는
폰트이름을 쓰면 안 되고 폰트심볼의 연결식별자를 폰트이름으로 써야 한다.
(다시 말하면, 옵션 없이 등록한 폰트심볼일 경우에는
반대로 폰트심볼의 연결식별자를 쓰면 안되고 폰트이름을 써야 한다- _-)

또, 폰트심볼을 등록할 때 옵션을 적용하지 않으면
심볼 등록할 때 사이즈를 특정 수치로 지정해주었더라도
다른 수치 사이즈로 변경해서 쓸 수 있는데,
옵션을 적용했을 경우에는 해당 수치의 사이즈 외에는 쓸 수 없다.

...여기서 편법이 등장;
텍스트필드에는 지정된 사이즈로 폰트를 사용한 다음
텍스트필드 자체의 사이즈를 키워주면 된다.
혹은 텍스트필드를 포함한 무비클립 사이즈를 키워주거나...
아 물론 보기 안 좋다.

4.
뭐 어떤가 - _-
이렇게 해서라도 이제 용량 걱정 없이 폰트를 사용할 수 있다는데...

5.
용량 걱정이 없으면 뭐하나...
로딩 시간이 배로 늘어나지롱 - _-...

6. 추가
소수점에 영향을 많이 받습니다. 저도 한때 이것땜시 머리 아팠는데...포함한 무비클립의 소수점에도 영향을 받으니 픽셀폰트를 담고 있는 무비클립과 픽셀폰트의 소수점을 모두 없애면 될겁니다.^^

일단 저는 FLASH MX 2004 이구요 사용 방법은 다음과 같습니다.

1. 심벌 library 에서 New font를 선택한 다음 원하시는 폰트를 등록 시키세요.
2. 스테이지 위에 다이나믹 txt의 인스턴스가 gg라고 가정 하에 프레임액션을 다음과 같이 입력하세요

var text_fmt= new TextFormat();
text_fmt.color=0x123456 //글 색깔
text_fmt.size=12 // 글 크기
text_fmt.font="웹정체" //요기에 등록한 폰트 링크값을 적어주세요

this.gg.setNewTextFormat(text_fmt);
this.gg.text = "이렇게 하면 됩니다.";

Articles

8 9 10 11 12 13 14 15 16 17