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

vitlance 02.07.2008 22:20

Как ускорить setInterval
 
Такой вопрос... Что если delay у setInterval нужен меньше 1... что делать?

Я заметил такой парадокс что когда идёт setInterval и если вызываеш contextMenu, то сетИнтервал ускоряется раза в 3.. Из за чего это? И как такое ускорение сделать не вызывав контекстМеню?

iNils 02.07.2008 22:31

Цитата:

Сообщение от vitlance (Сообщение 749633)
Что если delay у setInterval нужен меньше 1

Зачем?

wvxvw 02.07.2008 22:48

setInterval и 1 не будет равен =) у него приоритет ниже жем у любого другого кода. Т.е. он будет ждать окончания всех остальных операций чтобы что-то сделать. Если "всего остального" мало, то точности может хватить, ну, так в пределах +-5мс примерно, но, откровенно говоря, рассчитывать на точность интервалов меньше 10мс - ИМХО нет смысла.

vitlance 02.07.2008 23:18

Цитата:

Зачем?
Чтобы шустрее всё делалось..

Я делаю програму, и перед её началом идет "Инитиализация", (создаётся кучу разных текстур), и всё работает через сетинтервал, и в среднем эта "инитилизация", занимает 1 минуту, что для меня неприемлимо... Надо чтобы шустрее всё делалось

wvxvw 02.07.2008 23:25

Не... не думаю, что тут сетинтервал как-то поможет =) Ну, точно не ускорит =) Если вы попиксельно текстуры создаете - ничего не поделаешь, наверняка там сотни тысяч операций...

iNils 02.07.2008 23:28

То есть по вашему, таким образом можно ускорить флеш?

etc 02.07.2008 23:28

Цитата:

Сообщение от vitlance (Сообщение 749643)
Чтобы шустрее всё делалось..

Я делаю програму, и перед её началом идет "Инитиализация", (создаётся кучу разных текстур), и всё работает через сетинтервал, и в среднем эта "инитилизация", занимает 1 минуту, что для меня неприемлимо... Надо чтобы шустрее всё делалось

Делайте больше операций за такт. Только это врядли ускорит процесс. Минимальное время можно достичь, не используя интервалов в принципе.

vitlance 02.07.2008 23:37

Цитата:

Сообщение от iNils (Сообщение 749649)
То есть по вашему, таким образом можно ускорить флеш?

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

Цитата:

Делайте больше операций за такт. Только это врядли ускорит процесс. Минимальное время можно достичь, не используя интервалов в принципе.
Так флэш просто повиснет :)

Ладно.. Видемо в этой жизни ускорить интервал неполучится

iNils 02.07.2008 23:49

Цитата:

Сообщение от vitlance (Сообщение 749654)
Просто я отталкивался от того что при таких действиях как открывание контекст меню, дёрганию мышы, сет интервал начинает идти быстрее почему то

Код:

t = 0;
var txt = this.createTextField ("txt", 0, 10, 10, 100, 50);
function e () {
        txt.text = (getTimer () - t);
        t = getTimer ();
}
setInterval(e, 1);

Такая простая функция при 31 фпс, у меня в срабатывает в основном каждые 3 мс, иногда 2 и еще реже 1.
Запустите и посмотрите реальную частоту вызовов вашего интервала.

vitlance 02.07.2008 23:50

А ещё интересно что в Firefoxe, интервалы идут быстрее... От чего это зависит непонятно...


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

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