예약어란 프로그래밍에서 내부처리를 위해 미리 내장 되어있는 단어를 말한다. 예약어의 구체적인 쓰임새는 학습을 하면서 알게되므로 외울 필요는 없지만, 2~3번 반복해서 의미와 개념은 알고 넘어가자. 액션스크립트의 대표적인 예약어는 다음과 같다. package : 패키지란 해당 클래스를 포함하고있는 폴더 구조를 뜻한다. import : 클래스를 포함하고있는 스크립트 위치를 참조한다. public / private / internal : OOP구조의 "접근제한자"로써 클래스가 어떤 위치에서 사용되는지에 대한 선언이다. public : 모든 클래스에서 접근 private : 자기자신의 클래스에서만 사용 protected : 자기자신의 클래스와 상속해준 하위 클래스에서 사용 internal : 해당 패키지안에서만..
데이터타입을 알아보자.. Number / 제일 큰 범위. 모든 수 로 이해하면 됨. 정수, 부호없는 정수, 부동 소수점 숫자. (기본값 NaN : Not a Number); int / -2,147,483,648 ~ 2,147,483,647 의 정수, 32비트로 처리 (기본값 0) uint / 0 ~ 4,294,967,295 까지 양수 (기본값 0) Boolean / true,false (기본값 false) String / UTF-16포맷의 유니코드, 16비트로 처리됨 (기본값 null) Null / 아무것도 아직 없음, 변수의 값이 설정되지 않은 상태. 3.0에서는 클래스(인스턴스)등을 삭제할때 delete를 사용하지 않고 null값을 대입하여 가비지 컬렉션이 제거할수 있도록 함. null ex) 1 2..
이전 포스팅을 종합해보면 API와 개선된 E4X, 로우레벨 데이터처리, 아키텍처(디스플레이 리스트, DOM3, 텍스트 처리엔진)등의 물리적 변화가 있었다면 코드에서 변화된 점이 있는데 다음과 같다. 1. 문법의 변화 : 0~100으로 표현하던 값들이 0~1로 바뀌었다. _x, _width 등 이 그냥 x, width로 표현된다. SWF는 메인타임라인을 유지 할 필요가 없어져서 _root의 개념도 없어지고 Stage 속성으로 참조한다. package를 이용하여 클래스가 들어갈 폴더를 지정할 수있다. 2. 함수의 변화 : trace에서 매개변수를 여러 개 지정가능 하다. 예전에는 trace(a + " " + b); 로 했다면 바뀐방식은 trace(a, b); 이렇게 함수를 정의할 때 매개변수의 기본값을 지정..
as3.0은 AVM2 즉 ActionSCript Virtual Machine(액션스크립트를 해석하고 swf를 재생하는 엔진) 에서 해석되는 구조이다. AVM1이 이전 버전의 1.0/2.0을 담당했다면, AVM2는 3.0을 기반으로 훨씬빠른 속도(상황에따라 최고100배)와 CPU, 메모리의 최적화를 이루었다. 이 AVM2는 FlashPlayer9 이상 버전에서 동작하게 된다. as3.0의 특징및 유의점 1.데이터 타입선언 : as3.0은 데이터 타입을 미리 선언하는것을 원칙으로 한다. 2.DisplayObject : as3.0은 시각화 요소들이 모두 계층 구조를 이루고있다, 나타내고자 하는 작업과 형태에 따라서 Sprite, MovieClip, Bitmap, Shape등 필요할 때에만 나타내어 cpu와 렌..
서른살이 되기전까지 주로 플래시를 많이 다루었고 여러 우여곡절이 있었다... 저급기술인 이러닝, 중급기술인 웹, 고급기술인 게임까지. RIA(Rich Internet Application)의 모든것을 보여주었던 플래시. 이 글을 쓰는 2013년 현재, 웹 그리고 모바일에서의 플래시 사용 빈도는 계속 급감하고있다. 그러나 2000년대 초반까지 최고의 절정기를 이루었던 모습들과, as3.0이 공개되었던 시절 압도적인 퍼포먼스로 모든 RIA를 제패했던 멋진 모습들을 잘 기억하고있다. 수많은 시행착오를 거쳐가며 차곡차곡 쌓은 지식을 밑거름으로, 나 자신을 위해 천천히 내용들을 복습하며 정리하고 채워넣으려한다. 궁극적인 목표와 목적은 AIR Application 제작(모바일기기 형태의 응용 소프트웨어 개발)이며 ..
플래시 작업중 2중으로 객체가 마우스 오버, 아웃이벤트를 가지고있을경우 밑에 있던 객체는 마우스 포커스를 잃어 자연스레 마우스 아웃이 진행된다. 아래 샘플과 같이 main_mc안에 under_mc, close_mc가 들어있고 under_mc에서 close_mc로 마우스를 가져가면 under_mc 부분은 마우스아웃이 진행되어 오버 효과가 풀리게된다. 플래시 작업할때 의외로 많은 고민과 애로사항이 있는 부분이다. 이것을 relateObject라는 이벤트로 캐치해낸뒤 약간의 조건문으로 해결할 수 있다. 문제점) APi를 보면 relatedObject:InteractiveObject 이벤트와 관련된 표시 목록 객체에 대한 참조입니다. 예를 들어 mouseOut 이벤트가 발생하면 relatedObject..
swf와 swf간의 통신에 있어서는 대게 Loader클래스를 사용하여 제어 한다. 이를 위해서 Loadder클래스의 contentLoaderInfo메서드를 써야하고, HTTP요청을 위해 URLrequest 클래스가 들어가고.. 무엇보다, 이러한 형태의 가장 큰 동작방식은 부모컨테이너에 child 성격의 swf가 로드되는 형식이다. 쉽게 이야기 하자면 2.0에서 container_mc 객체를 통해 loadMovie, loadMovieNum 메서드를 사용하여 swf를 불러온다는 것과 비슷하게 이해하면 된다. 그런데 ...그러한 종속적인 개념없이 순수하게 Client에서의 swf와 swf간의 통신은 어떻게 할까? 즉, A.swf, B.swf 두개의 플레이어를 띄어놓고 A.swf 에서 버튼을 누르면 B.swf..
방법1) 이벤트객체의 타입을 발생시켜서 전파 Main.as package { import MyDispatch; import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { private var _myDispatch:MyDispatch; public function Main(){ init(); } private function init():void{ _myDispatch = new MyDispatch(); //Event객체를 통한 Event.COMPLETE 수신 _myDispatch.addEventListener(Event.COMPLETE, loadComplete); _myDispatch.init(); }..
Main에서 불러온 sub.swf 이외에 sub가 가지고있는 라이브러리 linkage자원을 활용하기 위해서는 loader.content.loaderInfo.applicationDomain.getDefinition("linkageName") as Class 로 가져올 수 있다. 혹시나 반대로 쓸일은 많지 않겠지만. 반대로 로드된 swf에서 부모 swf자원을 접근하려면 (this.parent).loaderInfo.applicationDomain.getDefinition("linkageName")으로 접근한다. package { import flash.events.Event; import flash.display.DisplayObject; import flash.text.TextField; import fla..
Main.swf 는 Main.as라는 도큐먼트 클래스를 통해서 sub0.swf, sub1.swf, sub2.swf, sub3.swf 을 순차적으로 모두 로드하고 로드가 완료되면 addChild를 한다. 또한 각 sub에 있는 인스턴스(스테이지에 배치된 이름있는 인스턴스네임)도 제어해본다. package { import flash.events.Event; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFieldAutoSize; import flash.display.MovieClip; import flash.display.Sprite; import flash.display.Loader; import flash...