간단한 ActionSciprt 3 를 작성 해 보자. 여기서는 ref. 1 을 보고 따라하는 정도로 설명을 할 것이다. 절차는 아래와 같다.
절차
- flex sdk 를 설치하자.
- jre download
- action script 작성
- 실행
환경구성
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
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%
댓글 없음:
댓글 쓰기