[컴][웹] ActionScript 3 HelloWorld 작성

/.swf 만들기 / action script test / 초보자 가이드 action script / action script 3 tutorial



간단한 ActionSciprt 3 를 작성 해 보자. 여기서는 ref. 1 을 보고 따라하는 정도로 설명을 할 것이다. 절차는 아래와 같다.

절차

  1. flex sdk 를 설치하자.
  2. jre download
  3. action script 작성
  4. 실행


환경구성

Flex SDK 설치

sdk 는 아래 경로에서 download 할 수 있다. 원하는 path 에 압축을 풀어놓으면 된다.
<sdk_home>/bin/mxmlc.exe 는 .mxml(MXML files) 과 .as 파일(ActionScript 3)을 가지고 .swf 파일을 만들어 준다.



JRE 설치

실제 compiler 은 lib/*.jar 들이라고 한다. 그래서 mxmlc.exe 를 사용하기 위해서는 java runtime 이 설치되어 있어야 한다.

64-bit JVM

64-bit JVM 은 지원을 하지 않는다고 한다.[ref. 2] 만약 64 bit jvm 이 깔려 있는 경우라면, 32-bit JVM 을 설치하고 compiler 에 설정을 해줘야 한다. path 설정은 /bin/jvm.config 에서 해줄 수 있다.[ref. 2]

# <flex_sdk_home>/bin/jvm.config
java.home=C:/Program Files (x86)/Java/jre7

그렇지 않으면 아래와 같은 error message 를 보게 된다.
Error loading: C:\Program Files\Java\jdk1.7.0_45\jre\bin\server\jvm.dll

참고로, 위의 경로를 적을 때 '/' 를 이용해야 한다. '\' or '\\' 는 제대로 동작하지 않는다고 한다.[ref. 2]


Flash Player

보통 Browser 의 plug-in 으로 설치되어 있다. 그런 경우에는 .swf 를 끌어다가 browser 에 놓으면 된다.
만약 설치가 되어 있지 않으면 아래 경로에서 download 할 수 있다.




ActionScript 3 작성

SWF 로 publish 할 때 내가 작성한 class 는 main timeline 과 연관이 있다. 이건 application class 로 publish 되는 모든 class 와 관련이 있다. Sprite 나 Sprite 의 subclass 를 상속받아야 한다.

내가 작성한 class 가 root object 로서 바로 instantiated 되고 이 instacne 가 Flash 에 있는 stage object 에 추가된다. 자세한 이야기는 아래를 참고하자.
When published as a SWF, the BareBones class is associated with what in earlier versions of ActionScript was known as _root, or essentially the main timeline. This applies to all classes being published as the application class in mxmlc.exe. In order for that class to successfully have that association, it needs to be of the correct type and that means that it needs to be a subclass of Sprite or any other class derived from the Sprite class such as MovieClip (in case you were wondering, a Sprite is basically a movie clip without a timeline and frames). If you have a application class compiled by mxmlc.exe that is not derived from Sprite, you will get a runtime error when the SWF is played.

As the root object, your class is immediately instantiated and that instance is added to the stage object in Flash. With that instantiation, the application class constructor is called and you have a starting place for your ActionScript 3 program to begin. 

flash player 에서 보이는 녀석을 display object 라고 하는데 이녀석은 DisplayObject 를 상속받았다. 예를 들면,

  • Sprite
  • MovieClip (which is a subclass of Sprite), 
  • TextField, 
  • Bitmap
  • Shape
와 같은 class 들이 있다. 모든 DisplayObject 는 EventDispatcher 를 상속한다.

InteractiveObject 를 상속받은 녀석들은 mouse 나 keyboard 로 부터 오는 event 를 받을 수 있다.

DisplayObjectContainer 를 상속받으면 다른 display object 들을 갖을 수 있다. SWF 의 application class 는 Sprite class 를 상속받기 때문에 DisplayObjectContainer 이기도 하다.


HelloWorld.as


ref. 1 에서 가져온 간단한 HelloWorld 예제이다.

package {
 import flash.display.Sprite;
 import flash.text.TextField;
 
 public class HelloWorld extends Sprite {
  
  public function HelloWorld() {
   var display_txt:TextField = new TextField();
   display_txt.text = "Hello World!";
   addChild(display_txt);
  }
 }
}



Compile

compile 은 아래와 같은 방법으로 해주면 된다.

rem // compile.bat
SET mxmlc="c:\Program Files\FlexSdk\flex_sdk_4.6\bin\mxmlc.exe"
SET asFile=HelloWorld.as
SET outFile=out.swf
%mxmlc% -show-actionscript-warnings=true -use-network=false -o %outFile% -file-specs %asFile%


Run

결과 file 로 나온 out.swf 를 Browser 에 끌어다 놓으면 결과 화면을 확인할 수 있다.





References

  1. Beginners Guide to Getting Started with AS3 (Without Learning Flex)
  2. java - MXMLC and 64bit JRE - Stack Overflow

댓글 없음:

댓글 쓰기