상세 컨텐츠

본문 제목

4강. hitTest

Programming/ActionScript3.0

by 노란날. 2010. 12. 27. 01:16

본문

반응형

 

>>>정의

//hitTest 다른 무비와의 충돌을 감지할 때 사용되는 명령
// ENTER_FRAME 으로 체크하기
/*hitTestObject(DisplayObject) ==>movie간의 충돌테스트
hitTestPoint(x,y,shapFalg);  ==> 무비와 특정 포인터 충돌테스트*/

_mc.addEventListener(Event.ENTER_FRAME, onEnter);
function onEnter(e:Event):void{
 //shapeFlag true = 실제 영역만 test ,  false =무비클립 전체영역 test
 if(_mc.hitTestPoint(mouseX,mouseY,true)){
  trace("충돌했습니다");
    }
}

 


>>>ex 1
 



//시작하자마자 car_mc 에 startDrag 선언
car_mc.startDrag(true);
car_mc.addEventListener(Event.ENTER_FRAME, onEvent);
function onEvent(e:Event):void{
//car_mc 와 _mc 의 충돌이 일어나면 {}안의 명령을 실행한다
 if(car_mc.hitTestObject(_mc)){
  _mc.alpha = 0.5;
// 위조건을 불충족시에는 밑의 조건을 실행한다
 }else{
  _mc.alpha = 1;
 }
}

 

 

>>>ex2

 



//무비클립이 처음에 실행되지않도록 제어해줌 (Frame에 선언하지않음)
_mc.gotoAndStop(1);
ball_mc.addEventListener(MouseEvent.MOUSE_DOWN, onStart);
function onStart(e:MouseEvent):void{
 ball_mc.startDrag(false);
 ball_mc.alpha = 0.5;
}

//마우스가 ball_mc에서 up되면
ball_mc.addEventListener(MouseEvent.MOUSE_UP, onStop);
function onStop(e:MouseEvent):void{
//ball_mc 의 drag를 멈춘다
 ball_mc.stopDrag();
//만약 ball_mc와 _mc가 충돌하면
 if(ball_mc.hitTestObject(_mc)){
//2프레임을 실행히키고, ball_mc의 알파값을 0 으로 실행함.
 _mc.gotoAndStop(2);
  ball_mc.alpha = 0;
 }else{
//무비의 충돌이 없을때는, 1프레임을 실행하고, ball_mc의 알파값도 최대로준다.
  _mc.gotoAndStop(1);
  ball_mc.alpha = 1;
 }
}


반응형

'Programming > ActionScript3.0' 카테고리의 다른 글

4강. hitTest를 이용한 갤러리  (0) 2010.12.27
4강. hitTest를 이용한 네비게이션 제작  (0) 2010.12.27
4강. 괄호연산자 표기법  (0) 2010.12.27
4강. addChild  (0) 2010.12.27
3강. startDrag, stopDrag  (0) 2010.12.27

관련글 더보기