본문 바로가기

FLASH/AS3.0기초

클래스로 코딩하기



플래시에서는 예전부터 해오던 전통적인 방법이 있습니다.

그 방법은 엄밀히 말하면 암묵적으로 패키지와 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