【发布时间】:2013-05-28 21:58:12
【问题描述】:
我有这个 foreach 循环来检查碰撞,我希望在发生碰撞时删除平台(movieclip)。到目前为止,我想出了这个:
if (mcContent.mcPlayer.y + mcContent.mcPlayer.height > platformCloud.y)
{
mcContent.mcPlayer.y = platformCloud.y - mcContent.mcPlayer.height - 1;
jump();
mcContent.removeChild(platformCloud);
//platformsCloud.splice(platformCloud);
}
这样做的目的是删除影片剪辑(到目前为止还不错)但没有拼接,当循环再次通过数组运行时,它仍然存在。因此,注释掉的拼接存在 1 个小问题,它从数组中删除了所有的影片剪辑。
如何只拼接当前正在检查的索引?
【问题讨论】:
-
为什么要保留对已删除对象的引用?将它们与“活动”对象放在同一位置是否有意义?
-
我不是这就是为什么我要使用 removeChild 删除它们,然后将它们从数组中取出,这样它们就不会被再次检查。至少这就是我试图用这段代码实现的目标。
-
在
forEach循环中? Don't!
标签: arrays actionscript-3 flash-cs5 splice