【发布时间】:2012-04-15 09:10:58
【问题描述】:
在多个项目中一直在努力解决这个问题。我尝试在 Flash 游戏中生成敌人并通过移除超出范围的敌人来执行清理。
方法如下:
enemyArray 包含对生成的敌人对象的引用。 enemyLayer 是包含生成的敌人的影片剪辑。
public function spawnEnemy():void
{
var mc:MovieClip = new Enemy();
enemyLayer.addChild(mc);
enemyArray.push(mc);
for (var i:int = 0; i<=enemyArray.length-1;i++)
{
enemyArray[i].z-=30; //Moves the enemies
if (enemyArray[i].z <=-400) //performs cleanup
{
enemyLayer.removeChild(enemyArray[i]);
}
}
}
但我得到了这个错误
提供的 DisplayObject 必须是调用者的子对象
我做错了什么?
我也试过了:removeChild(enemyArray[i]) ,删除了enemyLayer 引用,但得到了同样的错误。
【问题讨论】:
-
向我们展示您创建enemyLayer 和enemyArray 对象的方式和位置。
标签: actionscript-3 flash removechild