본문 바로가기

ActionScript/Tip

흔한 SWC 를 이용한 폰트 embed 팁

끝났다고 생각한 프로젝트가 자잘한 수정, 눈에 띠지도 않은 디자인 변경, 디버그등의 이유로

while(true){
   컴파일();
   테스트();
   확인();
   코드수정();
}


루프에 빠진 자신을 발견했을 때

컴파일 시간의 반을 embed 폰트가 잡아먹고 있으면 내 인내심에도 버그가 생길것 같은 기분이 든다.


 ...담배피는 시간.jpg


이문제를 해결하려면 SWC를 이용해야 한다. 관련된 팁은 많은 블로그에서 다루고 있다.

귀찮아서 안했다가 나중에 후회하며 swc를 부랴부랴 만들려고 하면 방법이 가물가물해 매번 검색을 해야되고
플래시와 플래시빌더가 미묘하게 방법이 틀리기도 해서 정리삼아 포스팅.


플래시 IDE
 

1.텍스트필드 하나 만들어 Font Embedding 설정 후 무비클립으로 만든다. 무비클립이름 신경쓰자(한글 NO)
2.라이브러리에서 만들어진 무비클립 마우스 오른쪽 -> Export SWC FIle
....Components(기본경로) 이하에 SWC 저장 (무비클립이름과 같지 않아도 되며 한글도 가능)
3.컴퍼넌트 패널 우측 상단메뉴에서 Reload Components 후 원하는 폰트SWC를 라이브러리에 추가

ActionScript Project (기타 다른 프로젝트도 동일할거라 예상)
 

1.텍스트필드 필요없이 라이브러리에서 우측상단 메뉴에서  New Font -> embed 설정
2.ActionScrpit 탭에서 적당히 Class  이름정하고 flash.text.Font 클래스 상속받는다
2.해당 fla를 SWC로 퍼블리시
(플래시IDE 용으로 만든 무비클립SWC를 가져와도 되지만 중요한것은 사용된 텍스트를 Linkage에서 클래스로 export 해줘야 한다. 이걸 안해서 왜안되는 거야 하고 삽질함)

3.해당 프로젝트 Properties - ActionScrpit Build Path - Library path 에서 add SWC
4.
var a:Font = new MyFont_RixGoEB();
var tfm:TextFormat = new TextFormat();
tfm.font = a.fontName;
 형식으로 TextFormat 객체를 만들어 setTextFormat(tfm) 등으로 사용

 Flash Professional Project

당연한말이지만 컴파일이 플래시에서 되므로 swc는 fla에서 추가하면 된다.