Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   lineTo и setInterval вешается процессор (http://www.flasher.ru/forum/showthread.php?t=91932)

Lexandr 12.02.2007 13:01

lineTo и setInterval вешается процессор
 
Уважаемы знатоки, подскажите! Есть следующий код:

Код:

var myclip=createEmptyMovieClip("myclip", 1);
function my(){
        with(myclip){
                moveTo(0,0)
                lineStyle(1, 0xffffff);
                lineTo(xx, yy);
                moveTo(0,0)
                lineStyle(1, 0xff00ff);
                lineTo(xx=random(100), yy=random(100))
                }
        }
        setInterval(my,10);

При его выполнении постепенно ресурсы процессора забиваются на 100%. Почему так происходит? что здесь не логично?
Как сделат ьподобную вещь но чтобы процессор не вешался?

FourSide 12.02.2007 13:25

Сделал пустой документ, вставил туда этот код - работает, память загружена на 0-3% (P-3000, RAM 512 MB). Сколько ни смотрел - память более не загружается, файл подкачки не используется.

Усложнил - добавил еще один ключевой кадр, в котором нет этого кода (в первом кадре с кодом нет stop()). И тут началось - до 47% за 3-4 минуты дошло, мне потом надоело :)

В общем, нужно смотреть на каком компе тестируется и какой код/структура остального мува. У меня приведенный код в нормальном своём виде ничего не вешает.

Lexandr 12.02.2007 13:41

Забивается не память, а процессор. Умнея за 3 секунды на 100%
забит. Celeron 2000 Ram 512. Мне кажется тут не важно какой комп. что-то в логике не верно.

Код этот сам по себе. Больше ничего во флэшке нет.

etc 12.02.2007 13:43

Lexandr, приведите свой пост в надлежащий вид.

CorC 12.02.2007 14:00

у меня тоже не вешает но
Код:

setInterval(my,10);
это слишком часто
50 еще куда не шло

Lexandr 12.02.2007 14:12

Код:

.setInterval(my,50);
. Ничего не меняется, только чуть дольше забивается процессор. Загрузку ЦП смотрню по диспетчеру задач.

etc 12.02.2007 14:15

Потому что количество векторных элементов превышает все допустимые пределы. Нужно удалять все clear().

Lexandr 12.02.2007 14:22

Спасибо. Всё работает как часы. Не знал о существовании clear(). Тема закрыта.

etc 12.02.2007 14:31

Темы закрывают модераторы.


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

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