2013-02-16 3 views
0

배열에 항목이 있습니다. 각 항목은 1 초의 지연 간격으로 재생되는 동영상 클립과 배열 항목 (obstacleArray [i])과의 충돌을 피하는 화살표 키로 제어되는 대상 무비 클립 (carTarget)입니다.). 나는 충돌이있을 때 알려주는 hitTestObject 문을 만들려고 시도했다. 그러나 대부분 null이 아니며 매개 변수 hitTestObject와 같은 오류가 발생하여이를 해결하는 방법을 알 수 없습니다.MC 타겟이있는 배열의 TESTObject MC 아이템을 hit하는 방법은 무엇입니까?

//obstacles 
function randomSort(a:*, b:*):Number 
{ 
    if (Math.random() < 0.5) return -1; 
    else return 1; 
} 
var obstacleArray:Array = [obstacleCar,obstacleCar2,obstacleCar3]; 
obstacleArray.sort(randomSort); 

trace(obstacleArray); 
trace(obstacleArray.length); 

//OBSTACLE START DELAY 
var timerPlay:Timer = new Timer(1000,1); 
timerPlay.addEventListener(TimerEvent.TIMER, ontimerPlay); 
timerPlay.start(); 

var i:int = 0; 
var timerDelay:Timer = new Timer(1000, 3); 
function ontimerPlay(evt:TimerEvent):void{ 

    obstacleArray[i].addEventListener(Event.ENTER_FRAME,checkHitTest);  
    //FOR EACH OBSTACLE 
    timerDelay.addEventListener(TimerEvent.TIMER, ontimerDelay); 
    timerDelay.start(); 
} 

function checkHitTest(event:Event):void{ 
     if(carTarget.hitTestObject(obstacleArray[i])) 
     { 
      trace("HIT!"); 
     } 
} 

function ontimerDelay(evt:TimerEvent):void{ 
    obstacleArray[i].play(); 
    trace(obstacleArray[i]); 
    i++; 
} 

답변

0

대부분의 경우, 문제는 코드 블록에 확인하다. enterFrame 이벤트에서 답장을 보내

0

hitTestObject는 사용하려고하는 순간 존재하지 않을 가능성이 큽니다. 공유 한 코드에서 코드에서 어디에서 코드를 생성하는지 알지 못합니다. 따라서 carTarget이 스테이지의 객체이고 해당 객체를 사용하려고 할 때 속성 또는 객체 hitTestObject가 초기화되었다고 가정하면 이러한 코드가 실행될 때 해당 객체가 여전히 존재하는지 확인해야합니다. 내가 타이머 호출을 변경 한 후

function checkHitTest(event:Event):void{ 
     if(carTarget.hitTestObject(obstacleArray[i])) 
     { 
      trace("HIT!"); 
     } 
} 

는 다음 obstacleArray는 [I] null 또는 악화 될 것이다 - 당신이 필요로하는 것 이외의 다른 목적 :

+0

감사를 checkHitTest를 호출하는 현재의 장애물을 얻을 것이다

function checkHitTest(event:Event):void{ if(carTarget.hitTestObject(event.target)) { trace("HIT!"); } } 

event.target하지만 더는 hitTestObject를 배치하는 위치의 문제입니다 :

당신은이를 변경해야 명령문은 적중을 반복해서 확인합니다. 어떤 순간에 그것은 단지 으로 응답하지 않습니다. TypeError : Error # 2007 : 매개 변수 hitTestObject는 null이 아니어야합니다. ? – user2075625