0

为什么会这样?

当两个物体相互接触时,我会追踪,它们会显示很多信息:

    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;
                   }

            }
        }

所以这里它把“boom”这个词写了很多次而不是1次,如何解决这个问题?

4

1 回答 1

0

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

于 2012-08-08T10:09:49.703 回答