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

serf 20.07.2005 12:22

SetInterval в цикле ?!
 
День добрый,

Подскажите пожалуйста решение. Пробывал и так и сяк, ничего не получается.

Есть код, определяет размер загружаемых JPEG-ов:

//for (i=1; i<=kol; i++)
//{
i = 1;
ff = setInterval(get_bytes, 300);
//}

function get_bytes()
{
l=eval("images_" + i).getBytesLoaded();
t=eval("images_" + i).getBytesTotal();

if ((l == t) && (l && t))
{
trace(t);
clearInterval(ff);
}
}

Вот в таком виде работает, но если убрать знаки комментария в цикле FOR, то функция get_bytes() вызывается только 1 раз, таймер не сбрасывается.

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

Пробывал использовать вместо SetInterval onEnterFrame, то же что-то не выходит, только если 2 изображения :(

За ранее спасибо

iNils 20.07.2005 12:43

Код:

for (i = 1; i <= 5; i++) {
        ff = setInterval (get_bytes, 300, i);
}
function get_bytes (i) {
        trace (i)
        l = eval ("images_" + i).getBytesLoaded ();
        t = eval ("images_" + i).getBytesTotal ();
        if ((l == t) && (l && t)) {
                trace (t);
                clearInterval (ff);
        }
}


serf 20.07.2005 13:54

Спасибо.

В принципе работает :)
Я пошел по другому пути, стал определять размер последней загруженной картинки и потом уже определять размеры всех изображений, но правда этот метод мне кажеться не лчень надежным.


Ваш пример работает, но только clearInterval все равно не сбрасывает таймер, трассировка не прекращается.

Мне что смущает, при трассировке идут значения 1,2,3,4,5,(t байты), и потом опять 1,2,3,4,5,(t байты). Разве не должно быть так: 1, (t байты) clearInterval() по условию, 2, (t байты) clearInterval() по условию и т.д. ? Цикл FOR не прерывается почему то и clearInterval то же. ?!

serf 20.07.2005 14:01

clearInterval (ff); не работает я так понимаю, потому что не известно значение ff.
Получить не получается, я в AS новичок, а во Флеше тем более.

Я поставил clearInterval (i);
i содержит последовательность 1..5, и индентификатор ff то же 1...5. Не очень конечно подход, а можно передать именно ff ?

iNils 20.07.2005 14:08

Код:

arrayInt = new Array ();
for (i = 1; i <= 5; i++) {
        arrayInt[i] = setInterval (get_bytes, 300, i);
}
function get_bytes (i) {
        trace (i)
        l = eval ("images_" + i).getBytesLoaded ();
        t = eval ("images_" + i).getBytesTotal ();
        if ((l == t) && (l && t)) {
                trace (t);
                clearInterval (arrayInt[i]);
        }
}

Байты у тебя должны выодится только после того как картинка загрузится, а до этого выводится только индекс объектов.

serf 20.07.2005 15:31

спасибо за помошь.

serf 20.07.2005 16:07

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

KUZEN 20.07.2005 16:10

со стороны универсальности ...

iNils 20.07.2005 16:27

Цитата:

Сообщение от serf
не поскажешь с какой лучше стороны подойти к созданию предзагрузчика, с учетом того что не известно сколько изображений будет загружено в флеш фильм?

У браузера есть ограничения (в реестре прописывается) на количество одновременно загружаемых элементов. Поэтому лучше всего, грузить одно за другим. То есть после получения события о полной загрузке, начинать грузить следущий элемент.

KUZEN 20.07.2005 17:02

Цитата:

Сообщение от iNils
У браузера есть ограничения (в реестре прописывается) на количество одновременно загружаемых элементов. Поэтому лучше всего, грузить одно за другим. То есть после получения события о полной загрузке, начинать грузить следущий элемент.

Вот про это я и не знал ... спасибо за мастер класс ... а если не секрет какие ограничения ?


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

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