플래시에서는 예전부터 해오던 전통적인 방법이 있습니다.
그 방법은 엄밀히 말하면 암묵적으로 패키지와 main함수를 생략한 구문입니다.
AS3.0에서는 아래의 클래스 코딩방법을 권장하고 있습니다.
다음 코드는 텍스트필드의 특성 인스턴스에 속성을 부여하여 화면에 원하는 텍스트를 뿌려주는 예제입니다.
package
{
import flash.display.Sprite;
import
flash.display.TextFieldAutoSize;
public class TextFieldSample extends
Sprite
{
public function
TextFieldSample():void{
trace("생성자");
txt.autoSize =
TextFieldAutoSize.CENTER;
txt.text = "I like Action
Script!";
}
}
}
본격적으로 클래스로 코딩하는 법을 공부해 보겠습니다.
메인타임라인에 아무것도 입력하지 않고 외부 Simple1.as 파일을 작성한 후
Document Class에 "Sample1"을 등록합니다.
Sample1.as 파일입니다.
//패키지선언 캡 중요!!!
package
{
//클래스등록
import
flash.display.MovieClip;
//클래스 정의
public class Sample1 extends MovieClip
{
//생성자
함수 정의
public function Sample1()
{
//플래시의 1번 프레임인 것처럼 생각하자
trace("클래스가
생성되었습니다.");
}
} // class
} // package
이렇게 외부에 작성하는 이유는
1. 보안성을 좋습니다. (디컴파일러로 볼 수 없습니다.)
2. 유지보수성이 좋습니다.
AS3.0은 이런 형식의 코딩을 권장합니다.
앞으로도 클래스를 만들어 개발자 자신만의 완성된 코드를 붙여나가면 작업속도도 향상되고
유지보수성이 좋은 프로그램을 만들 수 있을 것입니다.
[버튼을 클릭하면 카운트되는 예제]
무비클립과 텍스트필드를 스크립트로 생성해서 배치한 후
무비클립 버튼(btn)을 클릭할 때마다 카운트되는 예제입니다.
main.fla에는 아무것도 입력하지 않고
Document Class에 "CountClick"이라고 입력합니다.
CountClick.as를 아래와 같이 작성해 봅시다.
package
{
import flash.display.*;
import
flash.events.*;
import flash.text.*;
public class CountClick extends
MovieClip
{
public function CountClick():void{
var tf:TextField =
new TextField();
tf.autoSize = TextFieldAutoSize.CENTER;
tf.x =
100;
tf.y = 100;
tf.selectable =
false;
addChild(tf);
var btn:MovieClip = new
MovieClip();
btn.graphics.beginFill(0x000000);
btn.graphics.drawCircle(300,
100, 20);
btn.buttonMode = true;
addChild(btn);
var
count:int = 0;
tf.text =
String(count);
btn.addEventListener(MouseEvent.CLICK,
clickHandler);
function
clickHandler(e:MouseEvent):void{
count++;
tf.text =
String(count);
}
}
}
}
'FLASH > AS3.0기초' 카테고리의 다른 글
AS3.0 이벤트에 대해 알아봅시다. (0) | 2013.11.14 |
---|---|
Document 클래스의 이해 (0) | 2012.10.29 |
클래스와 객체 (0) | 2012.10.29 |
OOP란 (0) | 2012.10.25 |
Math (0) | 2012.10.25 |
타이머 (0) | 2012.10.25 |
AS2.0 과 AS3.0의 대표적인 차이점 (0) | 2012.10.25 |
Object 클래스 (0) | 2012.10.25 |
Array (0) | 2012.10.25 |
String (0) | 2012.10.25 |