본문 바로가기
배워보자!!/플래시

[flash as3.0] 플래시로 구글광고 따라하기 ver2

by norinda 2015. 4. 2.
728x90


main.as


temp.fla




저번에 만들었던 기능에서 비행기가 처음 스스로 나타나도록 추가하고,

마우스를 움직이지 않아도 비행기가 움직이도록 추가했습니다.ㅋ

음 마우스를 우측으로 뺐을땐 체크가 안되고 있군요...

그리고 좌우 이동 제한 위치를 계산해 넣지 않아 왼쪽끝이랑 오른쪽끝으로 갔을때 비행기 각도가 좀 다릅니다.


package  
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import fl.transitions.Tween;
	import fl.transitions.easing.*;

	
	public class main extends MovieClip
	{
		private var center:int;
		private var mouse_x:int;
		private var mouse_y:int;
		private var way:String;
		private var mouseCheck:Boolean;
		public function main() 
		{
			center = stage.stageWidth/2;
			mouse_x = airplane.x;  //초기 비행기의 x좌표 저장
			mouse_y = 50; //초기 타겟의 y좌표 저장
			way = "right"; //비행기의 이동방향입니다.
			init();
			stage.addEventListener(MouseEvent.MOUSE_OVER , stageUp); //스테이지에 마우스오버시
			stage.addEventListener(MouseEvent.MOUSE_OUT , stageOut); //스테이지에 마우스아웃시
			stage.addEventListener(MouseEvent.CLICK , shotHandler); //스테이지 마우스클릭시
		}
		private function init():void
		{
			airplane.addEventListener(Event.ENTER_FRAME , airEnterFrameHandler);
		}
		private function stageOut(e:MouseEvent):void
		{
			mouseCheck = false;  //스테이지 마우스 오버체크
		}
		private function stageUp(e:MouseEvent):void
		{
			mouseCheck = true;  //스테이지 마우스 오버체크
			
		}
		private function shotHandler(e:MouseEvent):void
		{
			var missileMc:MovieClip = new MovieClip();
			missileMc = new missile() as MovieClip;
			addChild(missileMc);
			missileMc.x = airplane.x;
			missileMc.y = airplane.y;
			missileMc.addEventListener(Event.ENTER_FRAME , missileEnterFrameHandler);
		}
		private function missileEnterFrameHandler(e:Event):void
		{
			e.target.y-=5;
		}
		private function airEnterFrameHandler(e:Event):void
		{
			if(!mouseCheck)//스테이지에 마우스 아웃시 비행기 좌우 이동하는 부분입니다.
			{
				if(way=="right"&&mouse_x<250)
				{
					mouse_x+=3;
					way = "right";
				}else if(mouse_x>50&&mouse_x<260)
				{
					way = "left";
					mouse_x-=3;
				}else if(way=="left"&&mouse_x<=50)
				{
					way = "right";
				}
				mouse_y = 50;
			}else
			{//스테이지에 마우스 오버시 두 변수를  마우스 위치로 변경
				mouse_x = mouseX;
				mouse_y = mouseY;
			}
			var airR:int = -((mouse_x-center)/center)*50;
			airplane.rotation = airR;
			airplane.x+=(mouse_x-airplane.x)*0.15;
			target.x+=(mouse_x-target.x)*0.2;
			target.y+=(mouse_y-target.y)*0.2;
			
		}
	}
	
}


반응형

댓글