Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Crontab на Флэшэ (http://www.flasher.ru/forum/showthread.php?t=21357)

Partiz 15.10.2001 19:31

Crontab на Флэшэ
 
Доброго времени суток многоуважаемый All!

Возникла следующая трабла: нужно сделать казалось-бы элементарную
задачку, заставить флэш ролик с определенной периодичностью (5 min)
лазить на сервак за данными и казать их юзеру.
По началу казалось решение данной задачи плевым: делаем мувик из
трех кадров (кадр 1) грузим данные через loadVariables и по
onClipEvent(data) засовываем данные куда надо, запоминаем текущее
Date.getTime() + 5*60*1000; (кадр 2) рисуем анимацию (кадр 3) сравниваем
запомненное Date.getTime() с текущим Date.getTime() если текущее время
больше запомненного идем на первый кадр за новой порцией данных, иначе
на кадр два - продолжать рисовать анимацию.
Проблема в следующем: При каждой необходимости узнать текущее время
приходится заново создавать объект Date, что IMHO жрет немерянно
системных ресурсов и соответственно такое решение неприемлемо.
Пробовал обойти данную проблему через getTimer() - результат
оказался тем-же :(
Может кто сталкивался с данным траблом? поделитесь своими изысканиями
по данному поводу...

WBR,
Serge.

C2Plus 16.10.2001 12:14

когда мне нужно создать какой-либо объект в повторяющемся участке кода, я обычно пишу такую конструкцию:

delete a
a = new object()

если a уже есть, она умрет :) а потом воскреснет. :) по-моему здоровска. :)

Partiz 16.10.2001 19:00

Ясное дело здоровска ! если данную конструкцию не написать получишь
полбу MemoryLeak-ом (ух сколько я с этими Leak-ами поимел проблем
когда писал свои первые юниховые демоны...)
Но фишка не в этом... фишка в том, что a=new Date(); жрет достаточно
много ЦПУ и если эта конструкция находится в цикле сжирание 100%
процессорнового времени гарантировано.

Короче, проблема решилась использованием отдельного Мувиклипа без
графики состоящего из трех кадров где в первом loadVariables и
wtime=getTimer()+5*60*1000; а в третем сравнение wtime с getTimer();
и переходом либо на первый кадр либо на второй...


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

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