Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как правильно применить setInterval? (http://www.flasher.ru/forum/showthread.php?t=117233)

calibri 22.10.2008 14:19

как правильно применить setInterval?
 
в первом кадре программа, в ней конструкция
Код:

1) setInterval( myfunction, 1000 );

    или (не знаю какую выбрать)

2) if(_root.goOutGame == 1)
        {
              clearInterval(_root.myID);
        _root.gotoAndStop(2);                                       
        }
  else
            {
            _root.myID= setInterval( myfunction, 1000 );
            setInterval( myfunction, 1000 );
            }

пробовал и ту, и другую

если применить вторую конструкцию, функция myfunction повторяется как надо, через секунду, дальше мне нужно перейти в другой кадр - повтор вызова функции myfunction прекращается, так как вызваю clearInterval
но, все как-то тормозит, експлорер приходится закрывать аварийно (в функции myfunction принимаю XML-данные и отсылаю)

первая тоже работает как надо, только при переходе на следующий кадр снова повторяется, а мне надо чтоб больше не вызывалась myfunction

если применить первую констр., то все нормально, но как поставить clearInterval без переменной myID, не понимаю

посоветуйте что-нибудь
заранее спасибо

Psycho Tiger 22.10.2008 15:09

Ну, начнем с того, что в setInterval 1 (2) параметр это строка - вы передаете ему myfunction. Быть может, это и есть строка, но что то я в этом сомневаюсь.
Что значит 1 (2)? Это значит первый/второй, ибо 1 параметром можно передавать... эрм... забыл слово, в общем, то место, где этот интервал выполняется.
Теперь, если я правильно понял:
Код:

//интервал выполняется, это ведь не setTimeOut
_root.myID= setInterval( myfunction, 1000 );
//потеряли прошлый интервал перезаписав myID, выполняется аж 2 интервала
setInterval( myfunction, 1000 );
//догонимся и 3, чего уж там


calibri 22.10.2008 17:53

myfunction получает xml-данные и делает с ними всякие всячины
не знаю, получается ли строка на выходе, думаю вряд ли
значит нельзя пользоваться данной функцией setInterval?

тогда пробую воспользоваться getTimer()
Код:

onEnterFrame = function()
{
if(getTimer() > _root.myGameTime)
{
myfunction();
_root.myGameTime = getTimer() + 2000;
}
}

все хорошо работает
но мне надо по нажатию на внешнюю кнопочку выйти на другой кадр, но в другом кадре функция myfunction как продолжает вызываться, а так не надо
как мне остановить getTimer() ???

lexa2000lexa 22.10.2008 19:33

удалить
Код:

delete onEnterFrame
по нажатию на ващу внешнию кнопочку


Часовой пояс GMT +4, время: 19:17.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.