안녕하세여 이렇게 다음 강의가 아닌 보강으로 찾아 뵙습니다.
웹디모 회원분중 한분께서 저에게 질문을 하셔서 이렇게 혼자 알려드리는것보다
보강하는식으로 다 알려드리는게 낳다고 생각하여 이렇게 글을 적습니다.
원래 물어본게 저번주이고 물어보자 마자 바쁜 프로젝트기간중에 무려2시간이나 짬을 내서
열심히 작성하고 올렸건만 이 다음넘들이 미쳐서 제가 스펨글을 올릴가능성이 크다고 안올려주더군요
-_-; 결국 2시간 날리고 프로젝트 밀리고 죽는줄알았습니다
아무튼 이렇게 프로젝트가 다 끝나고 제가 아직 살아있는거 감사하게 생각하면서
다시 글을 작성 합니다
자 이번시간에 할것은 플래시에서 임베디드폰트가 먼지에 대해서 알아 볼텐데요
embed 라는 말은 포함시켜버린다는 말이죠
즉 모든걸 포함되어진 폰트라 생각하면 됩니다.
더 쉽게 이야기해서 소위 css에서 사용하는 웹폰트의 개념하고 똑같습니다.
플래시에서 텍스트필드는 세가지로 나누죠. static,Dynamic, input ...
이중에서 static 의 경우는 퍼블리싱할때 입력된 텍스트를 쉐이프로 변환되서 들어갑니다.
즉 폰트의 정보를 받아서 백터화 시킨다고 생각하면됩니다. 그렇기 때문에 한번 퍼블리싱된후에는 해당 폰트가 없는 피씨에서 swf를 열어 보더라도 폰트정보를 읽어와서 텍스트를 보여주는것이 아니기 때문에 정상적으로 내가 선택했던 폰트로 나옵니다. 물론 fla 소스에서는 없는 폰트로 나오겠지만요...
그리고 dynamic과 input 텍스트 필드의 경우는 액션스크립트 또는 직접입력에 의해서 변수값을 받아 뿌려지는 형태입니다.
이것은 static과는 달리 퍼블리싱할때 백터화 시키지 않고 폰트정보만 기억하고 있다가 swf가 실행될때 내 컴퓨터의 폰트박스를 검사해서 해당 폰트가 있으면 그 폰트정보를 받아와서 동적으로 화면에 보여주게 됩니다. 그렇기 때문에 사용되었던 폰트가 없는 다른 PC 에서는 정상적으로 나오지 않게 되며 시스템 기본 폰트로 대치되어 나옵니다.
이렇게 dynamic / input 텍스트 경우에 static텍스트 처럼 사용할려면 기본폰트정보뿐만아니라
폰트의정보를 받아서 백터화 시켜야하는데 이런 기능을 하게 하는게 바로 임베디드 입니다.
임베디드를 하게되면 static텍스트 처럼 제가만든 폰트 가 웹상에서 다른 사람이 봐도 똑같은 폰트로
보이게 되는것이죠
자 이정도면 임베디드가 무슨말인 알거 같은데요
자 이제 한번 만들어 보아여~
플래시에서 dynamic / input 텍스트 를 임베디드 시키는 방법은 2가지 방법이 있습니다.
그냥 플래시안에서 클릭클릭으로 통해서 임베디드시키는 방법과
액션으로 직접 제어해서 만드는 방법이 있습니다
오늘은 이 2가지를 다 한번 만들어 보아요~
자 플래시 창을 열어보아요
자 창을 열어서 폰트를 dynamic text 로 선택을 해서 아무 글을 써봅시다

자 이렇게 쓴다음에 ctrl + enter 를 하여서 이 파일의 용량을 체크해 보아요~

자 역시나 0kb 입니다 저 폰트하나에 용량이 많이 나갈 일은 없겠죠
아 혹시 저는 ctrl+enter 를 해도 저렇게 안나온다 저렇게 어떻게 볼수있냐 라고 물어보는 사람이
있을수 있을꺼 같은데요 저건 상단 view 목록에서 Bend.... 라는 목록을 선택하면 볼수있습니다

cpu 점유률 및 용량 체크할때 편하기 때문에 거의 저렇게 해놓고 저는 작업을 합니다.
자 이제 본론으로 다시 넘어가서 이제 저렇게 쓴 dynamicText를 임베디드를 시켜보겠습니다
아참 이거 하기전에 잠깐 설명을 하겠는데요 일반 공통된 폰트 (굴림,돋음,궁서,system..) 같은
폰트는 임베디들 할 필요가 없습니다
그냥 이런 폰트를 사용하시려면 오히려 임베디드를 안하시는게 더 낳습니다 용량이 더늘어나기
때문에.. 저런 디폴트의 폰트가 아닌 다른 폰트 (ex,. 산돌폰트..kore..) 등의 폰트를 사용하실때는
임베디드를 하셔야 겠죠
자 만약 지금 dynamicText에 기본폰트로 되어있다면 다른 특유의 폰트로 바꾸어 보아요~
자 다들 바꾸셨으면 그 폰트를 클릭하고 하단에 속성창을 봐봅시다.
자 속성창 오른쪽에 보면 emeded.... << 라는 버튼이 있을 겁니다
그 버튼을 눌러 봅시다~

폰트의 전체 부터해서 영어 대소문자 한글기본/전체 특수기호 등등을 선택할수 있는 작은창이 뜹니다
자 저기서 원하는 목록 을 선택해서 ok 를 눌러 봅니다
저는 영어 대소문자 한글 기본/전체 특수기호 를 선택해서 ok를 눌렀습니다
아참 다중으로 어떻게 선택하냐면 위에 영어로 설명된글에보녀 ctrl키를 같이 누르면 된다고 설명
나와있습니다 -_-;

자 위의 그림처럼 선택하고 눌러봅시다
그리고 나서 다시 ctrl + enter 를 눌러봅시다

자 저렇게 하면 dynamicText를 임베디드 화 시킨게 끝나게 됩니다.
자연적으로 기본폰트 뿐만아니라 위에 설명 했듯이 세이프기능등 전부 가져가서 저장되기때문에
웹에 올려져 다른사람이 모아도 저렇게 똑같은 형태로 보이게 됩니다.
그런데 용량이 1메가가 넘는군요 -_- 사실 임베디드 화시키면 생각보다 많은 용량이 차지합니다
왜냐하면 제가 쓴것은 산돌폰트이지만 그거 하나만 임베디드를 못하기때문에
한글 기본이나/전체를 임베디드를 시켰기때문에 용량이 많이 나가게 됩니다.
그럼 저런 산돌폰트 같은 하나의 폰트만 임베디드도 시킬수 있느냐 라고 물으시면 당연히 옙!!
입니다 시킬수 있습니다 하지만 직접 클릭클릭이 아닌 액션으로 하셔야 가능합니다
자 이번에는 액션을 통해서 폰트를 임베디드를 시켜 보겠습니다
자 이번에는 다른창을 열어서 dynamicText를 선택한후에 화면위에 올려 놓고
속성창에 가서 dynamicText의 인스턴스 네임에다가 my_txt 라는 이름을 줍니다

자 그런다음에 이창의 라이브러리 을 가서 빈여백에 대놓고 오른쪽 마우스 클릭후에 그곳에서
new font 라는 것을 클릭해 보아요~

그럼 창이 하나 뜨 꺼에요 거기에는 기본 이름인 font1 하고 그 폰트가 먼지 정보가 뜰겁니다.

자 일단 ok 를 누릅니다 그럼 라이브러리 창에 보시면 font1 라는 이름을 가진 심볼이 등록이 되어있습니다 자 이제 그심볼을 클릭후에 오른쪽 마우스를 클릭후 Linkage.. 것을 선택합니다
이건 액션을 사용할때 이 심볼의 네임을 등록해 액션으로 제어를 하기 위해 제공하는것인데
이건 나중에 더욱더 자세히 설명드리겠습니다
다 누르면 다음과 화면이 나옵니다

자 화면 에서 제일 윗 목록을 클릭하면 자동으로 이름을 적을수 있는 곳이 활성화 됩니다
그럼 그곳에다가 Mc_text 라고 이름을 적고 ok를 누릅니다
자 그런다음 본화면 첫 프래임을 선택후에 f9 를 눌러서 액션창을 엽니다
그런 다음 다음과 같은 액션을 적어줍니다.
my_txt.text = "Web Dimo";
my_txt.embedFonts = true;
myformat = new TextFormat()
myformat.font = "Mc_text"
my_txt.setTextFormat(myformat)

자 이렇게 적어주시면 끝입니다 간단하죠 ㅎㅎ 간단히 액션에 대해서 설명하겠습니다
my_txt.text = "Web Dimo";
자 아까 dynamicText의 인스턴스 네임을 my_txt 라고 적어주셨져
my_txt 에다가 Web Dimo 라는 단어를 넣어준다 라는말입니다
my_txt.embedFonts = true;
my_txt라는 텍스트필드에 임베디드폰트화 시키라는 말입니다
myformat = new TextFormat()
myformat.font = "Mc_text"
my_txt.setTextFormat(myformat)
폰트 포멧을 지정하기 위해서 TextFormat() 오브젝트를 생성하고 font 속성을 지정합니다.
TextFormat()오브젝트는 액션에서 제공하는 Text오브젝트중하나입니다 그냥 쉽게 텍스트
필드를 생성한다고 생각하시면됩니다.
설정해놓은 텍스트 포멧(myformat)을 준비해놓은 my_txt 텍스트 필드에 적용합니다.
자 이렇게 해서 액션설명까지 마치고 모든 강의가 끝이 났습니다.
어떻게 보면 너무 간단하게 넘어갈수있지만 기초가 중요하는건 다들아시죠
너무 화려한 고급스킬은 이런 기초들이 모여서 만든다는거 아시고 너무쉽게 생각하지말고
한번쯤 연습을 해보았음 좋겠습니다
다음 강의인 Local connection 을 이용한 통신 은 제가 바쁜 관계로 아직 준비가 안되어있습니다
빠른시일내로 준비해서 찾아 뵙겠습니다
이 준비가 늦어질경우 에 다음 회에도 역시 보강을 할꺼 같은데요
다음 보강은 플래시 동영상의 모든것을 알아보겠습니다
플래시 5에서부터 써졌던 직접 import 화시켜서 로딩될때까지 하던 방법부터~
현제 플래시 8에서 쓰여지는 flv 을 이용한 스트리밍서비스 까지 알아보겠습니다
그럼 다음 강의까지 건강하시고 감기조심하세여~
아, 꼭 한번씩 해보고 넘어가시기 바랍니다 ^^
첫댓글 엑박 ㅠ_ㅠ
엑박 ㅜㅜ.. 숀님님 엑박 ㅜㅜ
헉 이런 -_-;; 다시~
지금은?
감사해요~ 잘보인당 ㅋ
아 떠글 다음~ ㅠㅠ 또 날리는줄알았넹
나두 엑박~
숀팬님 수고많으셨어요~ ^^)/ 강의 기가막힙니다~!
정말 상세히 적어 놓으셨네요 !! 감동 그자체 !! 입니다.
오홋..감사 드려요 ^^)/
캄사합니다
감사합니다~
이거 플래쉬8에서는 글자가 안나오던데요.
설명 감사합니다. 상세한 설명 필:::