피카부 RSS 태그 관리 글쓰기 방명록 다시 시작하는 개발 블로그
2010-01-20 11:16:00

Adobe가 무료로 제공하고 있는 개발 환경 [Flex 3 SDK]를 이용하면 ActionsScript 3.0이라는 프로그래밍언어로 Flash를 만들 수 있다. ActionsScript 3.0은 ECMAScript에 표준하기 때문에 프로그래머로서도 다루기 쉬운 언어라고 할 수 있다.


ActionsScript 3.0의 샘플코드를 보겠다.

프로그래머라면 아주 친숙한 Hello World! 


package{

  import flash.display.*;

  import flash.text.*;


  public class HelloWorld extends Sprite{

    public function HelloWorld(){

      var tf:TextField = new TextField();

      tf.text = "Hello World!";

      addChild(tf);

    }

  }

}


이 소스 코드를 컴파일하면 화면에 [Hello World!]라고 출력 된다.

컴파일하는 방법에 대해서는 조금 후에 다루기로 하고, 먼저 소스코드를 훑어 보겠다.

class나 package라는 키워드가 나오는 곳에서부터 알듯이, ActionScript 3.0은 객체지향의 언어이다.


ActionsScript 3.0와 같이 ECMAScript에 표준하고 있는 언어는 JavaScript도 있다.

그러나 이 소스코드는 JavaScript와는 닮은것 같지 않아 보이는 것도 사실이다.

그 이유는 ActionsScript 3.0은 현재 책정중인 ECMAScript4로 내부구조화 되어있다.

미래에는 JavaScript도 위의 소스코드처럼 클래스나 패키지를 정의하여 사용하게끔 될 예정이다.


그럼 Hello World!를 조금 변경해 보겠다.


package{

  import flash.display.*;

  import flash.text.*;

  import flash.utils.setInterval;


  public class HelloWorld extends Sprite{

    public function HelloWorld(){

      var tf:TextField = new TextField();

      tf.text = "Hello World!";

      addChild(tf);


      var str:String = tf.text;

      var len:int = 0;


      setInterval(function():void{

        tf.text = str.substr(0, len);

        len = (len % str.length) + 1;

      }, 100);

    }

  }

}


위 소스코드를 컴파일하면 H, He, Hel, Hell, Hello ...순으로 1문자씩 늘어나며 출력된다.

같은 애니메이션을 JavaScript에서도 구현해 보겠다. 


<body>

<div id="text">Hello World!</div>


<script>

var tf = document.getElementById("text");


var str = tf.innerText;

var len = 0;


setInterval(function(){

    tf.innerText = str.substr(0, len);

    len = (len % str.length) + 1;

}, 100);

</script>

</body>


setInterval()이나 substr()등 방금전의 ActionScript3.0의 소스코드와 거의 같은걸 볼 수 있다. 


이처럼, ActionsScript 3.0와 JavaScript는 문법뿐만 아니라, 표준으로 이용하는 클래스나 함수도 닮아있다. 

물론, ActionsScript 3.0의 독자적인 클래스도 많이 있지만, JavaScript를 알고 있는 개발자로서는 다루기 쉽다고 할 수 있겠다.


다음 포스팅에서는 위의 코드를 작성하기 위한 필요자료와 환경구축에 대해서 알아보도록 하겠다