플래시로 개발하면서

가장 짜증나는 부분중에 하나가

신나게 프로그래밍하다가 테스트해보기 위해서 모니터에

모든 정신 쏟은 채로 두근두근 하며

Ctrl + Enter 작렬!!!
사용자 삽입 이미지

...
사용자 삽입 이미지

...
사용자 삽입 이미지

...
사용자 삽입 이미지

...

기운 쭉 빠지는 순간이 아닐 수 없다.

다름아닌 폰트 임베딩 때문인데

매번 컴파일할때마다 폰트를 임베드 하기 때문에

개발속도가 느려져버리는건 당연하고 의욕도 떨어지고 짜증만 늘어난다.



자 그럼 이번에는 SWC 를 이용해서 폰트 임베등을 가볍게 하는 방법을 알아보자.

우선 새로운 fla 를 생성하고 (저장할 필요 없다.)

사용자 삽입 이미지

텍스트필드를 바탕에 하나 만들어준다.

사용자 삽입 이미지

그리고 Property 패널에 Embed 버튼을 선택해서 임베트할 Character-set 을 설정한다.

사용자 삽입 이미지

그리고 텍스트필드를 무비클립으로 생성해준다.

(한글이나 특수문자는 안되고 일반 변수명 작명하는 방법으로 네이밍한다. 때문에 한글폰트의 경우 네이밍을 잘 해야 혼동되지 않는다.)

사용자 삽입 이미지

그런다음 Library 패널에서 무비클립을 우클릭하여 나오는 메뉴중에서

Export SWC File 을 선택해서 swc 파일로 export 한다.

사용자 삽입 이미지

export 할 위치는 플래시의 컴퍼넌트 폴더여야 하며

보통 사용자폴더\AppData\Local\Adobe\Flash CS3\en\Configuration\Components\

로 되어 있다. 반드시 확인을 하자.

파일명은 한글로 해도 상관없다.

본인은 폰트만 따로 모아둘 요량으로 Fonts 라는 폴더를 따로 만들어 그안에 저장했다.

사용자 삽입 이미지

그런다음 컴퍼넌트 패널에서 우측의 쪼마난 메뉴에서 Reload 메뉴를 선택하자.

사용자 삽입 이미지


그러면 컴퍼넌트 패널이 업데이트 되면서 방금 export 한 폰트가 생성됐다.

이제 맑은 고딕이라는 폰트를 만드는 것은 성공이다.

이제 사용하는 법만 알면 된다.

사용자 삽입 이미지

이제 새로운 fla 를 생성해서

컴퍼넌트패널에서 생성된 폰트를 드래그하여 Library 창에 추가한다.

이게 끝이다.

이제 폰트가 embed 되어있는지 확인해볼 차례다.

액션창에 아래 소스를 넣어보자.

var fonts:Array = Font.enumerateFonts();

var font:Font;

for each(font in fonts)
     trace(font.fontName);

임베드한 폰트의 이름을 확인할 수 있을것이다.

자 그럼 사용을 직접 해보자.

우선 Library 에 있는 폰트 swc 를 지워서 깨끗하게 해놓은 다음에

역시 마찬가지로 액션창에 아래와 같이 써보자.

var txt:TextField = new TextField();
txt.defaultTextFormat = new TextFormat("맑은 고딕", 12);
//txt.embedFonts = true;
txt.text = "abcdef";

addChild(txt);

embedFonts 가 주석처리 되어 있기 때문에

아마 텍스트가 잘 보일것이다.

이번엔 주석을 풀고 다시 해보자.

var txt:TextField = new TextField();
txt.defaultTextFormat = new TextFormat("맑은 고딕", 12);
txt.embedFonts = true;
txt.text = "abcdef";

addChild(txt);

폰트가 임베드되어 있지 않기 때문에 텍스트가 보이지 않는다.

그러면 이제 컴퍼넌트 패널에서 폰트를 드래그하여

Library 에 추가한다음 다시 컴파일해보자.



이뿌게 Embed 되어 있는 폰트를 볼 수 있을것이다.

이제 폰트 때문에 짜증날일은 없을것이다.

많은 유저들에게 도움이 되었으면 좋겠다.

Tip


도움 됐으면 리플 ↓ ㄱㄱ
  1. Favicon of http://scaryama.com 스카야마 2007.10.10 13:24

    오옷 컴파일시간이 금방 되버리네요ㅋ
    폰트같이 시간 많이 잡아먹는 모든 객체에도
    똑같이 컴퍼넌트로 만들어서 쓰면 컴파일이 즐거워지는 거군요+_+

    • Favicon of https://wooyaggo.tistory.com 우야꼬  2007.10.10 17:41 신고

      Library 폰트보다 필요한 만큼 Embed 할 수 있으니까
      더 좋지~
      스카도 멋진거 많이 만들어줘~

  2. 김윤형 2007.10.10 14:16

    좋은데요!

  3. Favicon of http://rhinoo.ivyro.net 히누 2007.10.12 11:09

    멋져요~

  4. Favicon of http://scaryama.com 스카야마 2007.10.12 12:10

    아....
    제가 잘못알았네요 ㅋ
    폰트에서 자주 쓰는 것만 골라서 미리 준비해놓는 거구나요ㅎ
    전 정9체랑 테트리스체 자주 쓰는데 해놔야겠당
    크흥+_+ㅋ

    • Favicon of https://wooyaggo.tistory.com 우야꼬  2007.10.12 16:04 신고

      그치 ㅋㅋ 맞어
      미리 만들어놓고 쓰니까
      폰트때문에 컴파일 오래걸릴 일이 없겠지

  5. Jamaica 2007.10.18 18:34

    좋은정보 감사합니다~

  6. 다크서클 2008.01.02 15:44

    좋은 정보 감사합니다^^

  7. Leer 2008.02.04 14:25

    좋은 정보 감사드립니다.

    그런데, 예외의 경우가 있네요.

    플래시 8버전에서 라이브러리로부터 복제되는 무비클립속에 동일한 폰트를

    'embedFonts=true'로 놓게되면 폰트를 라이브러리에 넣지 않고,

    'embedFonts=true'를 호출한 때와 같은 현상이

    발생합니다.

    • Favicon of https://wooyaggo.tistory.com 우야꼬  2008.02.05 14:23 신고

      자세한 내용은 모르겠지만
      아마 Font 클래스의 fontName 속성 충돌이 일어나서
      그러는게 아닐까 싶기도하고
      동적 로딩이라면 ApplicationDomain 일수도 있겠다 싶네요^^ 자세한 케이스를 알려주시면 분석해볼 수 있을거 같아요~

  8. 호필 2008.03.03 15:23

    정말 쵝오~~ 짱입니다!!!!!!!!!!!!!!!!!

  9. 오투탱크 2008.03.04 20:17

    잘 보고 갑니다..//

  10. Favicon of http://maxxoutl.net MAXX 맥스 2008.03.05 01:41

    잘 보고 따라하고 가요- ^ _ ^

  11. 깡생이 2008.03.11 02:12

    좋은정보 잘 배우고 갑니다.~~

  12. 박천수 2008.03.19 18:31

    . 유용한 정보 감사드려요.
    저도 추가 팁하나 적습니다.

    사용할때 볼드나 이탤릭 볼드이텔릭 등의 속성을 사용하시려면,
    총 4가지 swc 를 모두 제작해서 등록해야 합니다. -_-; 삽질 많이 했습니다.
    텍스트필드 만들어서 4가지 속성을 적용하고 모두 심볼로 만들고....
    swc 이름은 대충 줘도 되구요. 맑은 고딕이 embed font 목록에 4개 올라오니깐
    적당히 필터링하거나, 내장한 폰트 이름 목록을 아예 따로 만들면 편하겠죠.

    • Favicon of https://wooyaggo.tistory.com 우야꼬  2008.03.19 22:04 신고

      네 그렇더군요^^
      거기다가 폰트명도 다 달라지더라구요 ㅋ
      아마 Astro 나오면 좀 달라지길 기대해봐야할거 같습니다.
      자주 들러주세요^^

  13. myeve 2008.07.28 17:44

    음 이렇게 하면 윤고딕같은 폰트에 한자도 나오게 할 수 있나요?

    • Favicon of https://wooyaggo.tistory.com 우야꼬  2008.07.30 09:24 신고

      한자는 안해봤지만
      폰트 임베딩의 원리로 보건데 마찬가지 아닐까 싶네요^^a

  14. Favicon of http://www.jinhokim.com 찌노 2008.10.10 17:53

    움.. swc 를 만들어서 플렉스 libs 에 넣으면 자동으로 될까 했는데..
    어떻게 안될까요? css 나 AS 로 불러오는 방법 외에 swc 로 하면
    관리하기가 훨 편할거 같은데..;

    • Favicon of https://wooyaggo.tistory.com 우야꼬  2008.10.11 01:36 신고

      플래시에서 swc 를 만드는 방법이 좀 여러가진데
      아마 플렉스에서 사용할 수 있도록 만들수도 있을거 같애요.
      제가 해본거 같기도 하고...
      한번 해보고 말씀드려볼께요 ㅋ

  15. 당근맨 2009.03.26 10:19

    as 2.0 방식 클래스에서 텍스트 필드를 만들어 폰트를 임베디드 하는 방식으로 하고 있는데
    임의에 폰트를 임베디드 하니 특수문자나 html 태그가 먹지 않아.. 한참 찾고 있습니다.
    임베디드 하지 않을경우 html 태그가 잘먹어.. 편한데.. 과장님이 디자인적 이유로 .. 현 검색중입니다.

  16. Favicon of https://quadflask.tistory.com Flask 2009.11.18 01:35 신고

    우와...최곱니다!! 비트맵에 찍어서 회전 시켰는데 시퓨 사용량이 꽤 있던데;;; 임베드로 다시 작성해야 겠네요!! 감사합니다..ㅎㅎㅎ

  17. Favicon of http://www.me41.com 오주헌 2010.09.29 12:51

    txt.embedFonts = true;로 해도 텍스트가 나타나질 않네요 왜그런가요???ㅡㅜ

  18. 시루엘 2012.10.24 09:51

    좋은 정보 잘보고 갑니다. ^^

+ Recent posts