태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
밤하늘의 실제별, 나도 가질 수 있다?!

[Flex 2.0.1]Label위에 올라온 한글 폰트 회전 시키기

2007/06/02 02:13

 

[공지]이미지나 링크가 깨졌다면 댓글 부탁드립니다.

어떤 프로그램을 만들던지... 한글을 사용할려고 하면 문제가 발생하는 경우가 생깁니다.
Flex 프로그래밍 할때도 예외는 아니지요.

예전에 한글 폰트회전이 너무 필요했었습니다.
ActionScript에서 한글폰트로 된 단어를 임의의 수 만큼 만들어서 회전시키고 싶었습니다.
영어는 회전하는데 문제 없지만 유독 한글만 쓰면 회전시 안보이는 현상이 발생합니다.
 
폰트를 회전시킬려고 처음에는 new myfont:TextField = new TextField() 를 해서
이것을 Bitmap에 삽입시켜서 bitmap을 회전시켰는데... 읽을 수는 있지만 약간 깨져서 이쁘지 않았습니다.

그래서 다른 방법을 생각하는 도중...
의외로 간단하게 해결되었습니다. OTL
 
한글 같은 경우에 SWF파일을 Embed해서 font를 회전시키던데....
제가 해보니깐... 그렇게 할필요 없다는 것을 알게 되었습니다.
단순히 TTF(트루타입폰트)만 가지고 회전시킬 수 있다는거죠.

Application (Language : xml)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:MyFont="*">
     <MyFont:FontExample id="fontEx"/>
</mx:Application>


이렇게 Application을 만들고
 
MyFont.mxml 이라는 이름으로 MXML파일을 아래와 같이 만듭니다.

MyFont.mxml (Language : xml)
<?xml version="1.0" encoding="utf-8"?>
<mx:Label xmlns:mx="http://www.adobe.com/2006/mxml" width="10" height="10" styleName="myFontStyle">
 <mx:Script>
         [Embed(mimeType='application/x-font', source='/font/YW_DOTUM.TTF', fontName='myfont')]
         private var myFontClass:Class;
 </mx:Script>
 <mx:Style>
     .myFontStyle {
         fontFamily:myfont;
     }
 </mx:Style>   
</mx:Label>


MyFont.mxml을 이용하여 다음에 만들어질 ActionScript에서 동적으로 생성해서 여러개의 폰트를 만들어 회전시킬 수 있습니당.
 
 
FontExample.as 를 만들고 아래 코드를 입력하면

FontExample.as (Language : java)
package
{
    import mx.core.UIComponent;
    public class FontExample extends UIComponent
    {
        private var newFont:MyFont;

        public function FontExample()
        {
            newFont = new MyFont();
            newFont.x=100;
            newFont.y=100;
            newFont.text = "나의 한글 폰트여~";
            newFont.height = 30;
            newFont.width = 400;
            newFont.name = "Font1";
            newFont.setStyle("color", "#ff3300");
            newFont.setStyle("fontSize","30");     

            newFont.rotation = 30
            addChild(newFont);

            newFont = new MyFont();
            newFont.x=200;
            newFont.y=30;
            newFont.text = "이것도 회전햐~";
            newFont.height = 30;
            newFont.width = 400;
            newFont.name = "Font2";
            newFont.setStyle("color", "#33ff00");
            newFont.setStyle("fontSize","20");   

            newFont.rotation = -200
            addChild(newFont);   

        }
    }
}
 

이렇게 만들고 실행하면... 으아아~~~~

사용자 삽입 이미지

 

이렇게 만들어지는 겁니다... 주의할 점은 Action Script는 Sprite말고 UIComponent로 상속받아야 한다는겁니다... 왜냐하면 폰트를 나타낼때 mx.control.Label을 썼기 때문이지요.

정말 별거 아닌거지만.... 저 이거하느라고 몇일밤을 흑흑......

아래 파일을 위를 구현한 예시 코드입니다.


이거 가지고 무엇을 만들었냐고요?
http://blog.jidolstar.com/56 
로 가시면 보실 수 있습니다. ^^

참고사항
bitmap을 이용해서도 회전이 가능하다. http://blog.jidolstar.com/189 를 참고하라.


글쓴이 : 지돌스타(http://blog.jidolstar.com)

크리에이티브 커먼즈 라이선스
Creative Commons License

Adobe Flash Platform , , ,

Trackback 주소: http://blog.jidolstar.com/trackback/101
  1. Blog Icon
    mkyoon

    와~ 코드 어떻게 저렇게 이쁘게 집어넣은거여요? 플러그인인가요?

  2. 예 플러그 인이예요. ^^