2016-04-29 61 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

哦,我的上帝,非常感谢你,唯一稍微搞砸的是我加了点,但是谢谢它的功能就像它应该 –

相关问题