scaleform.minarto.com

[강좌] 태그 클라우드 만들기 3 본문

ActionScript

[강좌] 태그 클라우드 만들기 3

미나토 2008. 1. 4. 17:29
첫번째 강좌 때, 제가 잊은 것이 있는데요... 이 강좌는 액션을 처음 배우려는 분들을 위한게 아니라 2.0에서 3.0으로 전환하시려는 분들을 위한겁니다.


그럼 시작하겠습니다 (코드 중 *숫자 는 맨 아래 보충 설명을 넣어놨습니다)


플래시를 실행하고 새문서를 열어 3.0 플래시파일을 선택해서 파일을 연후 밑의 properties 창에 Document class 란에 Main 이라고 써놓고 main.fla 로 저장합니다.


다시 새문서를 열고 액션스크립트 파일을 선택해 Main.as 라고 저장합니다. 이 파일이 이 어플리케이션에서의 Document Class 가 될 것입니다.


Document Class 를 만들어 작업하는 것과 2.0 때처럼 Main.as 파일을 만들어 인클루드 해서 쓰는 것의 차이를 알고 싶으시다면 아주 간단한 방법이 있습니다.

메인타임라인에 다음과 같이 넣고 돌려보시면

trace(this)

output ////////////////

[object MainTimeline]


이렇게 나오게 되고

Document Class 에 넣어서 돌려보면

trace(this)

output ////////////////

[object Main]

이렇게 나오게 됩니다.

참고로 3.0에서 2.0으로 짠 swf를 로드하면

output ////////////////

[object AVM1Movie]

으로 나오게 됩니다


여기서 더 깊은 차이를 알고 싶으시다면 레퍼런스에서 두가지에 대해서 살펴보시고요... 다른 파일이나 플렉스에서 이 파일을 로드했을 경우도 생각해보시기 바랍니다.


다시 시작해볼까요...

package
{
    import flash.display.*;

    public class Main extends Sprite
    {
        public function Main()
        {
        }
    }
}

여기까지는 2.0에서 라이브러리에 Linkage 로 클래스를 연결해 만들던 방법과 특별히 다를게 없습니다


간단한 메소드와 속성을 만들어 보겠습니다.


예를 들어 UI 컴포넌트 를 만들려면 첫번째 키프레임에 하얀 무비클립을 하나 넣어놓고 두번째
 키프레임에 실제 코드를 넣어서 그 무비클립을 이용해 컴포넌트의 사이즈를 조절할 수 있도록 만듭니다. 왜냐하면 속에 아무것도 없으면 width 와 height 값은 늘 0이기 때문이죠.

이런걸 무비클립을 넣지 않고도 가능하도록 width,height 속성을 바꿔보죠...


package
{
    import flash.display.*;

    public class Main extends Sprite
    {
        public function Main()
        {
        }

       
*1 private var __width:Number = 0;
        *2 override public set width(value:Number):void
        {
            __width = value;
        }
        override public get width():Number
        {
            return __width;
        }

        *3 private var __height:Number = 0;
       override public set height(value:Number):void
        {
            __height= value;
        }
        override public get height():Number
        {
            return __height;
        }
    }
}


이렇게 해놓고 컴파일 해보시면 아무것도 없는 빈 문서이지만 width, height 속성을 입력한대로의 값 그대로 가지게 된다는 것을 알 수 있을 것입니다.

일단 오늘은 여기까지... :)



*1 width : 2.0 에서는 화면에 표시되는 객체의 넓이 속성을 _width 로 리턴받았지만 3.0에서는 width 로 바꼈으며 이 코드에서 __width 는 그냥 클래스 내의 속성명일 뿐입니다.

*2 override : 2.0 에서는 특별한 제약 없이 같은 메소드명을 사용하면 오버라이딩이 됐지만 3.0에서는 override 라고 명해줘야 합니다

*3 height : *1 설명과 같이 _height 속성은 height 속성으로 변했습니다