플래시 작업중 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...
앞의 포스팅에 이어서.. 움직임에 관한 설명이다. 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번 라인을 주목