Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Лишняя нагрузка на процессор (http://www.flasher.ru/forum/showthread.php?t=63882)

Arrowy 17.10.2004 20:02

Лишняя нагрузка на процессор
 
Как в коде назначить событие с периодичностью 5-10 секунд не перегружая процессор пустыми циклами?
(в ентерфрейме с условием рандома меньше 0.01 99% холостых циклов излишне грузят проц..))

Skinner 17.10.2004 21:52

В своем проекте www.deepworld.us программа отчитывается перед сервером раз в несколько секунд.
я реализовал это примерно так:

_root.onEnterFrame = function() {
//Вызывается каждый кадр
t+=1;
if (t=60){
t=0;
//тута делаем что надо
}
}

С учетом, что во флешке настроено 12 кадров в сек.
60/12=5 cек.

Периодичность - раз в 5 секунд.

Штрек 17.10.2004 22:16

А setInterval уже значит не работает? :p

Arrowy 19.10.2004 12:55

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

Cvazimodo 19.10.2004 13:06

ничонепонял....
Это в setInterval() постоянные инкременты и сравнения?
.

Arrowy 20.10.2004 06:42

setinterval рулит! Это я Skinnerу отвечал. :)
Cvazimodo не подскажешь как правильно написать код с использованием сетинтервала для мува(остановленного) чтобы он запускался случайным образом?

Раньше я делал так
Код:

onClipEvent (enterFrame) {
        if (Math.random()<0.02) {
                play();
        }
}


Cvazimodo 20.10.2004 11:26

Код:

myInter = function() {
        newInter = Math.round(Math.random()*10000);
        trace(newInter);
        clearInterval(_root.inter);
        _root.inter = setInterval(myInter, newInter);
}

_root.inter = setInterval(myInter, 1000);

Функция myInter первый раз вызовется через секунду, а потом будет вызываться случайно от 0 до 10 секунд.
.

Arrowy 21.10.2004 11:31

Ура все работает.... че прикольно, что теперь мув будет запускаться через 1-10 секунд независимо от числа фпсов.
.... причем не надо постоянно крутить цикл (как это было раньше у меня в ентерфрейме), а функция единожды сработав, устанавливает сама для себя новое время для выполнения!
Принимайте благодарности. ;)


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

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