태터데스크 관리자

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

태터데스크 메시지

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

[Flex] Transform의 Matrix 활용

2007/08/17 15:29

 

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

DisplayObject를 컬러변환과 좌표변환(회전, 이동, 스케일링 등)을 하는데 자주 이용하는 것이 Transform이다.
여기서 DisplayObject가 회전,이동,스케일,Skew을 다루기 위해서는 속성중에 Matrix의 객체인 matrix를 다루어야 한다. 이 matrix를 이용하면 회전,이동,스케일뿐아니라 다양한 형태로 DisplayObject를 다룰 수 있다.

이에 대한 내용은 http://flexdocs.kr 에서 아래 링크를 참고하여 학습하도록 한다.
http://flexdocs.kr/docs/flex2/langref/flash/geom/Transform.html
http://flexdocs.kr/docs/flex2/langref/flash/geom/Matrix.html



ExTransform.mxml (Language : xml)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
    <mx:Script>
        <![CDATA[
            public function init():void
            {
                img.x = (imgContainer.width >> 1) - (img.width >> 1);
                img.y = (imgContainer.height >> 1) - (img.height >> 1);
                img.visible = true;
            }
           
            public function changeMat():void
            {
                var mat:Matrix = new Matrix;
                mat.a = a.value;               
                mat.b = b.value;   
                mat.c = c.value;               
                mat.d = d.value;   
                mat.tx = (imgContainer.width >> 1) - (img.width >> 1);
                mat.ty = (imgContainer.height >> 1) - (img.height >> 1);   
                img.transform.matrix = mat;
            }
        ]]>

    </mx:Script>
    <mx:Panel title="Transform의 Matrix활용(http://blog.jidolstar.com)" paddingLeft="5" paddingRight="10" paddingTop="10" paddingBottom="10">
        <mx:Canvas id="imgContainer" width="100%" height="100%">
            <mx:Image id="img" source="@Embed('P061225021.jpg')" width="140" height="179" visible="false"/>
        </mx:Canvas>
        <mx:VBox>
            <mx:HBox>
                <mx:Label text="a"/>
                <mx:HSlider id="a" width="350"
                    tickInterval="0.1"
                    minimum="-1"
                    maximum="1"
                    liveDragging="true"
                    labels="[-1,-0.5,0,0.5,1]"
                    change="changeMat()"
                    value="1"/>

            </mx:HBox>
            <mx:HBox>
                <mx:Label text="b"/>
                <mx:HSlider id="b" width="350"
                    tickInterval="0.1"
                    minimum="-1"
                    maximum="1"
                    liveDragging="true"
                    labels="[-1,-0.5,0,0.5,1]"
                    change="changeMat()"
                    value="0"/>
 
            </mx:HBox>
            <mx:HBox>
                <mx:Label text="c"/>
                <mx:HSlider id="c" width="350"
                    tickInterval="0.1"
                    minimum="-1"
                    maximum="1"
                    liveDragging="true"
                    labels="[-1,-0.5,0,0.5,1]"
                    change="changeMat()"
                    value="0"/>
 
            </mx:HBox>
            <mx:HBox>
                <mx:Label text="d"/>
                <mx:HSlider id="d" width="350"
                    tickInterval="0.1"
                    minimum="-1"
                    maximum="1"
                    liveDragging="true"
                    labels="[-1,-0.5,0,0.5,1]"
                    change="changeMat()"
                    value="1"/>
 
            </mx:HBox>   
        </mx:VBox>
       
    </mx:Panel>
   
    <mx:Style>
        Application
        {
            fontSize:12;
        }
    </mx:Style>
</mx:Application>
 

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

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

Adobe Flash Platform , ,

Trackback 주소: http://blog.jidolstar.com/trackback/202
  1. 2010/02/01 13:10
  1. Blog Icon

    비밀댓글 입니다

  2. 이런 트랙백이면 절대 실례가 아니라 고마운겁니다.
    좋은 글 감사합니다.