2013-02-11 80 views
0

這是我的代碼 - 它的工作,並移動到幀3,但一切都卡在那裏,我 得到這個錯誤#2007錯誤#2007:參數hitTestObject必須爲非空

function createMC(event:Event):void 
{ 
    var hasa_mc:MovieClip= new hasa(); 
    stage.addChild(hasa_mc); 
    var halfMc:int=hasa_mc.width/2; 
    hasa_mc.x=randomNum(70+halfMc,480-halfMc); 
    hasa_mc.addEventListener(Event.ENTER_FRAME, abc); 
    hasa_mc.addEventListener(Event.ENTER_FRAME, dropCheckHit); 

    function dropCheckHit(event:Event):void 
    { 
    if (hasa_mc.hitTestObject(hauta1_mc)) { 
     hasa_mc.removeEventListener(Event.ENTER_FRAME, dropCheckHit); 
     event.target.parent.removeChild(event.target); 
     countertime++; 
     score_txt.text=String(countertime*10) 


     if (countertime==10) 
     { 
    gotoAndStop(3); 

    } 

回答

1

錯誤代碼和說明指的是線路:

if (hasa_mc.hitTestObject(hauta1_mc)) {

我的猜測是影片剪輯hauta1_mc不會對影片的框架3存在,所以一旦你轉到第3幀和你dropCheckHit˚F unction執行空引用錯誤被拋出。

解決您可以刪除輸入幀監聽器和停止檢查,如果影片剪輯一直打到:

if (countertime==10) 
{ 
    hasa_mc.removeEventListener(Event.ENTER_FRAME, dropCheckHit); 
    gotoAndStop(3); 
} 

注意:您可能需要刪除您對hasa_mc以及其他聽衆如果hasa_mc不存在於第3幀中。

0

謝謝。從哪裏我需要刪除也?仍然不起作用。 當它到框架3有新的MC擊中新對象

功能dropCheckHit(事件:事件):無效{

if (hasa_mc.hitTestObject(hauta1_mc)) { 
     hasa_mc.removeEventListener(Event.ENTER_FRAME, dropCheckHit); 
     event.target.parent.removeChild(event.target); 
     countertime++; 
     score_txt.text=String(countertime*10) 


     if (countertime==10) 
     { 

    gotoAndStop(3); 
    hasa_mc.removeEventListener(Event.ENTER_FRAME, dropCheckHit); 

    } 



     hauta1_mc.nextFrame();} 

      else if (hasa_mc.y > 380) 
{ 
    xdirection = 0; 
    ydirection = 0; 
    hasa_mc.x = 190; 

    hasa_mc.y = 200; 
    hauta1_mc.x=220; 


    lifeCounter--; // 
    life_txt.text=String(lifeCounter); 
    trace(lifeCounter); 
    if (lifeCounter==0) 
    { 
    gotoAndStop(5); 
    } 
} 

} 

}

相關問題