>>>정의
//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;
}
}
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 |