Проблема с hitTestObject - PullRequest
       2

Проблема с hitTestObject

0 голосов
/ 08 июля 2011

Я пишу HitTestObject для моего персонажа: (каждый код находится в разделе ENTERFRAME)

- для персонажа:

if(bullet.bulletList.length>0)
    for (var i:int = 0; i < bullet.bulletList.length; i++)
    {   if(this.hitTestObject(bullet.bulletList[i]))
           {
               updateHP();
                        }
             }

- для кода атаки энергии:

bullet= new Bullet();
bulletList.push(bullet);

В начале, когда на этапе нет маркера, не выдается никакой ошибки, но при первом добавлении маркера на этап возникает ошибка, подобная этой:

TypeError: Error #2007: 参数 hitTestObject 不能为空。(something's like hisTestOject cannot be empty)
at flash.display::DisplayObject/_hitTest()
at flash.display::DisplayObject/hitTestObject()
at com.miraclei::char/loop()

Я думаю, это потому, что когдасначала bullet removeFromStage, функция hitTestObject ничего не нашла в bulletList, затем произошла ошибка.Я пробовал много способов, но все еще не хорошо!У кого-то есть решение для этого?

1 Ответ

1 голос
/ 08 июля 2011

Если я читаю это правильно, трюк состоит в том, чтобы перебирать ваш массив маркеров в порядке убывания:

for (var i:int = bullet.bulletList.length-1; i > -1; i-- )
{   etc..

таким образом вы не столкнетесь с пустыми позициями массива.

надеюсь, что это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...