PDA

Просмотр полной версии : НЕ пересечение клипов


Hermit89
20.11.2009, 15:54
Как через hitTest или что то другое проверить не пересекаются ли клипы?
Загвоздка в том, что hitTest проверяет пересечение двух клипов между собой. А мне нужно чтобы к примеру мувик test НЕ пересекался НИ с чем. Если он ни с чем не пересекается, то выполнить действие. Делать через hitTest проверку пересечения одного клипа со всеми остальными довольно не рационально как мне кажется..

apoptom22
20.11.2009, 16:47
hit=0
if(mc1.hitTest(mc2)){
hit=1
}
if(hit==0){
то выполнить действие
}

mooncar
20.11.2009, 17:29
Непересечение со всеми.
Придется проверять со всеми, но можно код оптимизировать, если объектов для проверки много.
Например, у нас mc находится на _root, тогда, если проверка должна происходить непрерывно, код можно организовать так:
mc.onEnterFrame = function () {
for (i in _root) {
//условие ПЕРЕСЕЧЕИЯ с любым объектом MovieClip на _root, кроме себя самого:
if (this.hitTest(_root[i]) && this != _root[i] && typeof(_root[i]) == 'movieclip') {
var checkCondit:Boolean = true ; //пересечение есть!
}
}

if (!checkCondit) {
trace('не пересекается!')
//действия при непересечении
}
else {
trace('пересекается!')
//действия при пересечении
}
}
Работает для любых объектов MovieClip, под иные объекты условие можно доработать.