我想检查我的角色是否正在击中阵列中的任何项目(true),如果他不是(false)。现在布尔值在for循环中,因此每次程序更新时它返回一个“true”和多个“false”语句。我只想要一个返回,如果角色在数组中击中一个影片剪辑则为true,如果不是则为false。这是代码:
for(var i:int = 0; i<steps.length; i++){
if(steps[i].hitTestPoint(hero.x,hero.y+hHeight/2, true)){
onSteps = true;
}else{
onSteps = false;
}
}
答案 0 :(得分:0)
并且还可以看到“返回”。
答案 1 :(得分:0)
我认为你想要的是一个贯穿steps数组的函数,然后一击就会返回true。如果没有命中,则默认返回“false”。
function checkForHits():Boolean {
for(var i:int = 0; i<steps.length; i++){
if(steps[i].hitTestPoint(hero.x,hero.y+hHeight/2, true)){
return true;
}
}
return false;
}
答案 2 :(得分:0)
Array
对象已有方法
some(callback:Function, thisObject:* = null):Boolean
在true
的任何元素满足回调函数的情况下返回Array
,在 no <的情况下返回false
/ strong> Array
的元素满足回调函数。
以下是文档:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html#some()
您的代码类似于:
onSteps = steps.some(function (item:*, index:int, array:Array):Boolean
{
return item.hitTestPoint(hero.x,hero.y+hHeight/2, true);
});