object.hitTestObject(other_object)执行次数过多

时间:2012-08-08 09:23:29

标签: actionscript-3 flash actionscript

为什么会这样?

当两个物体相互接触时,我放了痕迹,它们向我显示了许多信息:

    private function onEnterFrame(e:Event):void{

        e.target.x += 4;
        var moved = false
        if(!moved)
        {
            for(var i = 0; i < arrows.length; i++)
            {

                if(e.target.hitTestObject(arrows[i]))
                   {

                       trace('boom');
                       moved = true;
                       break;
                   }

            }
        }

所以在这里它写了“繁荣”这个词多次而不是一次,如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您正在检查每一帧的命中测试,因此每次它都会为您提供命中测试的值。我认为你的问题是你在循环中定义你的布尔变量“移动”并且它失去了它的目的,因为当它进入循环时它总是错误的。尝试在函数外部定义布尔变量。这将有助于解决问题:)