2016-04-29 97 views
0

我需要使用Actionscript for school的幫助。這是一個簡單的捕捉遊戲。 它一直說,我顯示的對象必須是它應該是的孩子的調用者,它有點作用,但我不知道如何解決我的兔子對象通過我的點角色落下的問題,並給我一個錯誤,當它當它沒有被抓住時碰撞到地面角色以及碰到地板時。孩子應該存在,但我猜想它不會。我不知道該怎麼辦。評論的東西是我在另一個文件上測試過的東西,並轉移它看看它會做什麼。錯誤#2025:提供的DisplayObject必須是調用者的孩子

//Block = Asuka 
//Ball = Bunny 
//Ballz = Bunz 
//Bunny is linked in library 
import flash.events.Event; 

var intervalBunny = setInterval(addBunny, 1000); 

var bunz: Array = []; 

function addBunny() { 
    var bunny: Bunny = new Bunny(); 
    bunny.x = Math.ceil(Math.random() * 500); 
    bunny.y = -50; 
    addChild(bunny); 
    bunz.push(bunny); 
    bunny.addEventListener(Event.ENTER_FRAME, dropBunny); 
} 

function dropBunny(e: Event) { 
    var b: Bunny = Bunny(e.target); 
    b.y += 10; 
    if (b.y > 400) { 
     eliminatebunz(b); 
    } 
} 

stage.addEventListener(Event.ENTER_FRAME, moveAsuka); 

function moveAsuka(e: Event) { 
    Asuka.x = mouseX; 
    for (var i: int = 0; i < bunz.length; i++) { 
     trace(i); 
     if (Asuka.hitTestObject(bunz[i])) { 
      eliminatebunz(bunz[i]); 
      //points 
     } 
    } 
} 

function eliminatebunz(p) { 

    p.removeEventListener(Event.ENTER_FRAME, dropBunny); 
    removeChild(p); 
} 

下面的代碼就如何解決它的任何幫助,將不勝感激,尤其是因爲我不是一個大的編碼器,我更是藝術家/插畫

+0

問題將出現在removeChild()行中。不知怎麼的,你要去掉兔子兩次。看起來很可能你的moveAsuka在dropBunny調用cancelBunz之後發現了一個命中。 –

+0

我該怎麼做才能做到這一點?我是否有像父母一樣的孩子?如果你想要一個視覺,當我玩遊戲時發生了什麼,我有一個鏈接https://twitter.com/RyuGoomba/status/726095888402268160 –

回答

0

只是這樣做的:

function eliminatebunz(p) 
{ 
    if(p) 
    { 
     p.removeEventListener(Event.ENTER_FRAME, dropBunny); 
     if(p.parent) 
     { 
      removeChild(p); 
     } 
    }   
} 
+0

哦,我的上帝,非常感謝你,唯一稍微搞砸的是我加了點,但是謝謝它的功能就像它應該 –

相關問題