Форум 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=116421)

bulya123 30.09.2008 12:31

Остановить функцию setInterval()
 
Здрасте, вот делаю что-то типа галереи и возникла такая проблема, нужна кнопка для включения и отключения автоматической смены картинок, вот сама функция:
Код:

playGallery = function() {
                if(k<number_items[current_num] - 1) k++
            else k = 0
        unload_pic(current_num, k)               
}
IntervalGallery = setInterval(playGallery, 1000)

а вот кнопка:
Код:

play_gal_mc.onRelease = function() {
       
        if(playflag == true) {
        this.gotoAndStop(2);
        delete IntervalGallery();//по идее удаляет функцию setInterval()
        playflag = false
        }
        else {
        this.gotoAndStop(1);
        IntervalGallery();//возобновляет, тоже по идее
        playflag = true;
                }
       
        }

но почему-то не работает:confused:
Скажите что не так:)

iNils 30.09.2008 12:39

Код:

delete IntervalGallery();//по идее удаляет функцию setInterval()
Две ошибки.
1. setInterval и setTimeout возвращают id интервала - число. Вы же это число пытаетесь вызвать как функцию. :)
2. Пытаетесь удалить "результат" "вернутый" "числом-функцией".
Должно быть так
Код:

clearInterval (IntervalGallery);
В AS принято с большой буквы называть только классы и интерфейсы.

bulya123 30.09.2008 12:57

Цитата:

Сообщение от iNils (Сообщение 767249)
Код:

delete IntervalGallery();//по идее удаляет функцию setInterval()
Две ошибки.
1. setInterval и setTimeout возвращают id интервала - число. Вы же это число пытаетесь вызвать как функцию. :)
2. Пытаетесь удалить "результат" "вернутый" "числом-функцией".
Должно быть так
Код:

clearInterval (IntervalGallery);
В AS принято с большой буквы называть только классы и интерфейсы.

Большое спасибо:)
Насчет классов и интерфейсов учту, я пока только учусь:)
Вот только еще вопрос, а как восстановить функцию, при повторном нажатии?
Если пишешь setInterval(playGallery, 1000), то потом не получается ее отчистить

iNils 30.09.2008 14:43

Надо повторить
Код:

IntervalGallery = setInterval(playGallery, 1000)
Каждый вызов setInterval возвращает свой уникальный id

bulya123 30.09.2008 14:48

Цитата:

Сообщение от iNils (Сообщение 767282)
Надо повторить
Код:

IntervalGallery = setInterval(playGallery, 1000)
Каждый вызов setInterval возвращает свой уникальный id

Спасибо, все получилось:)


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

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