PDA

Просмотр полной версии : lineTo и setInterval вешается процессор


Lexandr
12.02.2007, 13:01
Уважаемы знатоки, подскажите! Есть следующий код:


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
Темы закрывают модераторы.