2013-11-12 3 views
0

У меня есть медиа-клип, называемый точкой с несколькими дочерними графиками. Когда мой персонаж попал в ребенка, я хочу получить имя или номер ребенка этого графического объектаполучить имя ребенка hitTestPoint

if (point.hitTestPoint(char.x + 20,char.y + 30,true)){ 
    //name of child hit 
} 

Возможно ли это?

ответ

0

Вы можете обмануть это, нажав на тестирование детей в контейнере. Что-то вроде ...

if (point.hitTestPoint(char.x + 20,char.y + 30)) { 
    for(var n:int = 0; n < point.numChildren; n++) { 
    if(point.getChildAt(n).hitTestPoint(char.x + 20,char.y + 30,true)) { 
     // Do something. Store name, whatever 
     break; 
    } 
    } 
} 

Это не самый оптимальный метод, но прост и соответствует тому, как вы сейчас это делаете. Если вы делаете это для игры на высокой скорости, то вам нужно будет изучить какое-то пространственное разбиение, чтобы оптимизировать ваш тест.

+0

Почему бы не удалить внешний 'if (point.hitTest ...'? – putvande

+0

Это не мое намерение оставить последнее истинное значение. Я обновил ответ. Выполнение проверки пикселей дорого, поэтому было сделано намерение сначала проверьте флажок. – AndySavage

+0

Почему это справедливое решение? imho. Внешний hittest должен остаться (как сделать все тяжелые подсчеты, если нет никакого удара по родительскому клику?) – Fygo

Смежные вопросы