PDA

Просмотр полной версии : Проблема с hitTest


flazher
22.05.2008, 13:13
Сделать надо следующее:
Есть два объекта. Если один пересекает другой, то фильм переходит на второй кадр.
onClipEvent(enterFrame) {
if(this.sq1.sq2.hitTest(_root.rnd)) {
_parent.gotoAndStop(2);
}
}
С этим никаких заморочек. Но что, если мне надо отслеживать, чтобы объект НЕ ПЕРЕСЕКАЛ другой?
onClipEvent(enterFrame) {
if(!hitTest(_root.rnd)) {
_parent.gotoAndStop(2);
}
Эта ситуация, если отслеживать пересечение клипа, в котое вбили событие. А если так:
onClipEvent(enterFrame) {
if(this.sq1.sq2.!hitTest(_root.rnd)) {
_parent.gotoAndStop(2);
}
}
Ничего не выходит.
Помогите неразумному. :confused:

lexa2000lexa
22.05.2008, 13:17
а если вот так
onClipEvent(enterFrame) {
if(this.sq1.sq2.hitTest(_root.rnd)) {
//а тут что хотите то иделайте
}
else{
_parent.gotoAndStop(2);
}
}

flazher
22.05.2008, 13:26
Как енто до меня не сразу не допёрло! Балшой респект!

Psycho Tiger
22.05.2008, 13:30
Оператор ! ставиться перед выражением, то есть:

!this.sq1.sq2.hitTest(_root.rnd)


Вообще, on (clipEvent) - это 5 флэш, недавно вышел 10... Ас2 style это:

mc.onEnterFrame=function():Type{
}

Type - если ничего не возвращает должен быть Void (он у меня таков в 90% случаях)


То есть твой случай:

onClipEvent(enterFrame) {
if(!this.sq1.sq2.hitTest(_root.rnd)) {
_parent.gotoAndStop(2);
}
}


Но правильней написать (ну, точнее более удобельночитабельно)

your_mc.onEnterFrame=function():Void{
if(!this.sq1.sq2.hitTest(rnd)) {
gotoAndStop(2);
}
}