Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 애드온
- Document Class
- 수학정석
- flash
- autodesk
- as3
- 클릭
- CLIK
- 형변환
- scaleform
- scaleform3
- 스케일폼
- scaleform4
- addChild
- GDC
- 태그클라우드
- as3.0
- flash player 10
- KGC 2013
- Chart
- 강좌
- watch
- as2
- 집합의 연산
- 샌프란시스코
- flash cs3
- 플래시
- ApplicationDomain
- DataBinding
- MMOKit
Archives
- Today
- Total
scaleform.minarto.com
[강좌] 태그 클라우드 만들기 3 본문
첫번째 강좌 때, 제가 잊은 것이 있는데요... 이 강좌는 액션을 처음 배우려는 분들을 위한게 아니라 2.0에서 3.0으로 전환하시려는 분들을 위한겁니다.
그럼 시작하겠습니다 (코드 중 *숫자 는 맨 아래 보충 설명을 넣어놨습니다)
플래시를 실행하고 새문서를 열어 3.0 플래시파일을 선택해서 파일을 연후 밑의 properties 창에 Document class 란에 Main 이라고 써놓고 main.fla 로 저장합니다.
다시 새문서를 열고 액션스크립트 파일을 선택해 Main.as 라고 저장합니다. 이 파일이 이 어플리케이션에서의 Document Class 가 될 것입니다.
Document Class 를 만들어 작업하는 것과 2.0 때처럼 Main.as 파일을 만들어 인클루드 해서 쓰는 것의 차이를 알고 싶으시다면 아주 간단한 방법이 있습니다.
메인타임라인에 다음과 같이 넣고 돌려보시면
이렇게 나오게 되고
Document Class 에 넣어서 돌려보면
이렇게 나오게 됩니다.
참고로 3.0에서 2.0으로 짠 swf를 로드하면
으로 나오게 됩니다
여기서 더 깊은 차이를 알고 싶으시다면 레퍼런스에서 두가지에 대해서 살펴보시고요... 다른 파일이나 플렉스에서 이 파일을 로드했을 경우도 생각해보시기 바랍니다.
다시 시작해볼까요...
여기까지는 2.0에서 라이브러리에 Linkage 로 클래스를 연결해 만들던 방법과 특별히 다를게 없습니다
간단한 메소드와 속성을 만들어 보겠습니다.
예를 들어 UI 컴포넌트 를 만들려면 첫번째 키프레임에 하얀 무비클립을 하나 넣어놓고 두번째
키프레임에 실제 코드를 넣어서 그 무비클립을 이용해 컴포넌트의 사이즈를 조절할 수 있도록 만듭니다. 왜냐하면 속에 아무것도 없으면 width 와 height 값은 늘 0이기 때문이죠.
이런걸 무비클립을 넣지 않고도 가능하도록 width,height 속성을 바꿔보죠...
이렇게 해놓고 컴파일 해보시면 아무것도 없는 빈 문서이지만 width, height 속성을 입력한대로의 값 그대로 가지게 된다는 것을 알 수 있을 것입니다.
일단 오늘은 여기까지... :)
*1 width : 2.0 에서는 화면에 표시되는 객체의 넓이 속성을 _width 로 리턴받았지만 3.0에서는 width 로 바꼈으며 이 코드에서 __width 는 그냥 클래스 내의 속성명일 뿐입니다.
*2 override : 2.0 에서는 특별한 제약 없이 같은 메소드명을 사용하면 오버라이딩이 됐지만 3.0에서는 override 라고 명해줘야 합니다
*3 height : *1 설명과 같이 _height 속성은 height 속성으로 변했습니다
그럼 시작하겠습니다 (코드 중 *숫자 는 맨 아래 보충 설명을 넣어놨습니다)
플래시를 실행하고 새문서를 열어 3.0 플래시파일을 선택해서 파일을 연후 밑의 properties 창에 Document class 란에 Main 이라고 써놓고 main.fla 로 저장합니다.
다시 새문서를 열고 액션스크립트 파일을 선택해 Main.as 라고 저장합니다. 이 파일이 이 어플리케이션에서의 Document Class 가 될 것입니다.
Document Class 를 만들어 작업하는 것과 2.0 때처럼 Main.as 파일을 만들어 인클루드 해서 쓰는 것의 차이를 알고 싶으시다면 아주 간단한 방법이 있습니다.
메인타임라인에 다음과 같이 넣고 돌려보시면
trace(this)
output ////////////////
[object MainTimeline]
output ////////////////
[object MainTimeline]
이렇게 나오게 되고
Document Class 에 넣어서 돌려보면
trace(this)
output ////////////////
[object Main]
output ////////////////
[object Main]
이렇게 나오게 됩니다.
참고로 3.0에서 2.0으로 짠 swf를 로드하면
output ////////////////
[object AVM1Movie]
[object AVM1Movie]
으로 나오게 됩니다
여기서 더 깊은 차이를 알고 싶으시다면 레퍼런스에서 두가지에 대해서 살펴보시고요... 다른 파일이나 플렉스에서 이 파일을 로드했을 경우도 생각해보시기 바랍니다.
다시 시작해볼까요...
package
{
import flash.display.*;
public class Main extends Sprite
{
public function Main()
{
}
}
}
{
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;
}
}
}
{
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 속성으로 변했습니다