Форум 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)
-   -   clearInterval не вырубает.Ошибка или глюк? (http://www.flasher.ru/forum/showthread.php?t=98048)

Ная 05.07.2007 16:28

clearInterval не вырубает.Ошибка или глюк?
 
версия флеши 8я.

Код:

function function1() {
        sec = (new Date()).getTime();
        var intrv:Number = setInterval(ch_timer, 10, sec);
}
function ch_timer(sec1) {
        sec2 = (new Date()).getTime();
        if (((sec2-sec1)>=300) && (ubrat == true)) {
                clearInterval(intrv);
                ubrat = false;
        }
}

не очищает интервал. trace'ом проверяла. Почему, не понимаю. вроде все верно. думала что не видит название, пробовала передать его, результат тот же.
Подскажите ошибку, пожалуйста.

chingachgoog 05.07.2007 16:38

А если вместо
Код:

var intrv:Number = setInterval(ch_timer, 10, sec);
написать

Код:

intrv = setInterval(ch_timer, 10, sec);
?

PS А не проще ли тут использовать setTimeout?

BigDan 05.07.2007 16:45

переменная intrv должна быть глобальной для обеих функций

Ная 05.07.2007 16:49

setTimeout'a у меня нет или он не в класс Data входит. убрала инициализацию переменной, не помогло(((


объявила intrv вне функций, но результат тот же

BigDan 05.07.2007 16:52

Код:

var intrv:Number;
function function1() {
        sec = (new Date()).getTime();
        intrvr = setInterval(ch_timer, 10, sec);
}
function ch_timer(sec1) {
        sec2 = (new Date()).getTime();
        if (((sec2-sec1)>=300) && (ubrat == true)) {
                clearInterval(intrv);
                ubrat = false;
        }
}


chingachgoog 05.07.2007 17:01

Не знаю, у меня работает

Код:


function function1() {
        ubrat=true
        sec = (new Date()).getTime();
        intrv = setInterval(ch_timer, 10, sec);
        trace("use")
}
function ch_timer(sec1) {
        trace("interval use")
        sec2 = (new Date()).getTime();
        if (((sec2-sec1)>=300) && ubrat) {
                clearInterval(intrv);
                ubrat = false;
                trace("end")
        }
}

function1()

PS setTimeout работает, хотя его нет в хелпе и он не выделяется синим

Ная 05.07.2007 17:01

именно так и написала, но не вырубается.

Aisaid 05.07.2007 19:31

если тебе нужна просто пауза (задержка) при проигрывании - проще писать так:

Код:

stop();
id = setInterval(function () {
clearInterval(id);
play();
}, 12000);

(12 секунд пауза)
id - переменная

CorC 06.07.2007 10:29

Может вы интервал несколько раз объявляете не очистив? Потому как приведенные коды работают.

Kikasso 06.07.2007 10:32

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


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

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