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...
앞의 포스팅에 이어서.. 움직임에 관한 설명이다. 3.0에서 새로 생긴 rotationY (X,Z가 더있다)를 사용하여 객체를 Y축으로 회전 시킬 수 있다. 2.0에서 삼각함수의 코사인(x축으로 +, - 를 반복운동)하던 꼼수를 벗어나서 진정한 3D rotation을 구현한다 Flash Player 9버전. 삼각함수로만든 움직임 Flash Player 10버전. 10버전 메서드를 사용한 움직임 좀더 자세히 비교해보자.import flash.events.Event; import flash.display.MovieClip; var t:Number = 0; pic0.addEventListener(Event.ENTER_FRAME, loop_0); pic1.addEventListener(Event.ENTER_FR..
DisplayObject끼리의 충돌을 검사하여 교차하면 true, 그렇지 않으면 false를 반환하는 메서드이다. 이것을 가지고 기초적인 책의 샘플을 응용하여 도형 맞추기를 만들어봄. import flash.display.MovieClip; import flash.events.MouseEvent; var posX:Number; var posY:Number; var myInstance:Array = new Array(poly_mc,rect_mc,star_mc,cir_mc); for(var i:int = 0; i
샘플소스) import flash.display.Shape; import flash.display.Graphics; import flash.geom.Point; //원의반경, 면의 갯수, 라인색, 면의 채색여부 function drawPoly(radius:int=100, side:uint=3, lineColor:uint=0xFF00FF, fill:Boolean=false):Shape{ var sh:Shape = new Shape(); var g:Graphics = sh.graphics; if(fill)g.beginFill(0x99CC33, 1); g.lineStyle(2,lineColor,1); g.moveTo(radius,0); var rad:Number = (Math.PI * 2) / side; //..
해상도 1024 x768의 브라우저 중앙정렬은 다음과 같다. 1. position : absolute (포지션은 크게 상관없음 relative 등 으로 해도..) 2. 높이와 가로를 각각 브라우저의 50% 위치로 지정한뒤 magin으로 높이/2, 가로/2 로 빼주면 정중앙으로 이동된다. 3. 그러면 width:1024, height:768 이고 top:50%, left:50% 적어준뒤에, margin:-384px 0 0 -512px 실무적용사례) 10번 라인을 주목
자동차제어 인터페이스. 자동차들이 있는 클래스에서 공통된 제어는 페달 부분이고, 크게 브레이크와 악셀로 나뉜다. 이 페달부분을 인터페이스로 각 자동차들이 구현상속을 받고, 운전자인 드라이버는 그저 페달(인터페이스)만 조작할 뿐이다. 자동차를 바꾸고 싶을때는, 호스트코드에서 필요에 따라 자동차의 종류만 바꾸어 주면 된다. (내 실력이 실력인지라.. 상황에 맞게 예제를 코딩하였지만 코드의 확장 및 유연성이 부족함. 따라서 응용하려면 더욱 공부하는 수밖에 없다.) 구성은 다음과 같다. 자동차의 종류 - "쿠페, 레미콘, 세단" 클래스 자동차의 공통점 - "페달 : 브레이크, 악셀" 인터페이스 운전자 - "드라이버" 클래스 호스트 코트 - "Main" 도큐멘트 클래스 IPedal.as package carCon..
프로그래밍 언어에서 공통의 요소를 하나의 interface로 만들어서 implements로 구현상속을 시킨 후 기능구현은 그 구현상속된 클래스에서 동작하게된다. 예를 들어서 "자동차"라는 객체가있다. 프로젝트 안에서 한개가 아닌 쿠페, 레미콘, 세단, 포크레인, 렉카 등이 사용되고 자동차를 움직이는 드라이버는 어떠한 자동차이건 페달(브레이크,악셀)을 밟아서 사용하게된다. 이때 드라이버는 항상 페달(브레이크,악셀)을 사용하고, 자동차의 종류를 바꾸고 싶을 경우에는 행위를 바꾸는게 아니라 자동차모델만 변경 시켜서 운전을 하면된다. (자동차를 이용한 인터페이스는 다음 포스팅에서 자세히 설명.) 일단 이론적으로 interface가 필요한 이유는, 다형성에따른 다중상속 그리고 각각의 객체를 interface로 캐..
패키지 : flash.errors 클래스 : public dynamic class IllegalOperation_error 메서드 : IllegalOperation_error(message:String = "") 구현되지 않거나 현재의 사용이 구현 범위에서 벗어나는 경우 IllegalOperation_error 예외가 발생합니다. package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.errors.IllegalOperationError; public class IllegalOperation_errorExample extends Sprite { public function IllegalOperation_e..