我有以下函数不断运行,以检查玩家控制的球 (mcBall) 和许多墙壁(恰当地命名为 mcWall1、mcWall2 等)之间的碰撞:(var numberofwalls 在每个不同的帧中都有自己的值是不同数量的影片剪辑。)
function checkcollision(evt:Event) : void {
for(var i = 1; i <= numberofwalls; i++){
if (mcBall.hitTestObject("mcWall"+i) == true){
killball()
}
}
}
}
但是,当我这样做时,编译时出现以下错误:
场景 1,图层“动作”,第 1 帧,第 89 1067 行:将 String 类型的值隐式强制转换为不相关的类型 flash.display:DisplayObject。
第 89 行是这样的:
if (mcBall.hitTestObject("mcWall"+i) == true){
我的理解是它试图添加一个字符串和一个int,但我不明白为什么它不只是将整数添加到字符串的末尾(例如:mcWall1 where i = 1)。
我不能使用 ("mcWall"[i]),因为我没有设置数组,并且认为我将使用的墙的数量没有必要。在舞台上,每面墙都有一个静态的实例名称,而不是在我的代码中。
关于如何让它测试 mcWall(i) 的任何建议?
提前喝彩。