PDA

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


Danss
28.04.2008, 19:20
Доброго времени суток. У меня такая проблема: игрушка: пушка убивает падающих на нее сверху врагов, когда в нее поподает враг она взрываеться и я хочу чтобы она появлялась,скажем через 3 секунды. Я делаю так :


if(vrag.hitTest(puwka)) {
puwka._visible = false;
expl_puwka._x=puwka._x;
expl_puwka._y=puwka._y;
expl_puwka.play(); // взрыв пушки
intervalPuwka = setInterval( createPuwka,3000 ) // createPuwka - фун-я созддания пушки
clearInterval( intervalPuwka )
}



при поподании врага в пушку, она проподает и больше не появляеться никогда.
Если убрать clearInterval то пушка, при поподании в нее врага пропадает и появляеться через 3 секунды, но это действие зацикливаеться и повторяеться постоянно.
Подскажите пожалуйста: Как правильно организовать clearInterval так, чтобы моя пушка появилась 1 раз после своей "смерти" и не зацикливалась?
Заранее благодарен.

iNils
28.04.2008, 19:57
Вы запускаете интервал, а потом сразу его убиваете. Где логика?
Замените
intervalPuwka = setInterval( createPuwka,3000 )
clearInterval( intervalPuwka )
на
intervalPuwka = setTimeout( createPuwka,3000 )

Danss
28.04.2008, 20:04
Спасибо, вообще еще 1 вопростик: я пытался сделать еще так:


if(vrag.hitTest(puwka)) {
puwka._visible = false;
expl_puwka._x=puwka._x;
expl_puwka._y=puwka._y;
expl_puwka.play(); // взрыв пушки
intervalPuwka = setInterval( createPuwka,3000 ) // createPuwka - фун-я созддания пушки

}
if(puwka._visible = true) {
clearInterval( intervalPuwka )
}


но тоже не прошло.

Волгоградец
29.04.2008, 10:56
Надо так писать:
if(puwka._visible == true)
Или еще правильнее:
if(puwka._visible)
И вообще правильнее было бы запихнуть
clearInterval( intervalPuwka )
в функцию createPuwka ().
А вообще вообще самый техничный вариант написал iNils во втором посте.