Просмотр полной версии : Подвисание флэшки при выполнении длительного цикла
motor4ik
17.10.2006, 13:59
Вобщем у меня создаются в двух циклах мувики, и секунды на 3-5 (на моей мощной машине) происходит подвисание...как можно его убрать
заменил один из циклов на сетИнтервал с интервалом 1 мс, вообще флэш завис ))))
чтобы придумать?
motor4ik
17.10.2006, 14:11
впринципе я понял почему завис вообще флэш, потому что наложились циклы друг на друга, т.е. просто побольше время поставить сетинтервалу, но тоже не угадаешь, вдруг на очень медленной машине тоже наложится как быть...
motor4ik
17.10.2006, 14:19
варьируется в том то и дело, от 2 до 5000
motor4ik
17.10.2006, 14:28
там просто сетка, столбцы один цикл и вложеный в него строки, вот это самая беда, был бы один цикл проще было бы )
У тебя, вероятно, ещё при создании мувиков вызываются циклы…
Могу лишь посоветовать отрисовывать постепенно или вообще поменять структуру.
motor4ik
17.10.2006, 15:05
нет, цикла 2 , просто атачится мувик из библиотеки...а как постепенно, там 2 цикла трока и столбец..и внутри атачится мувик...все
как поменять структуру?? рекурентно вызывать функцию?
motor4ik
17.10.2006, 16:02
У тебя, вероятно, ещё при создании мувиков вызываются циклы…
да , точно, просто атачу клип, который к класу привязан , видимо инициализация класса долго проходит, блин (
что самое интересное , выход ОДИН - рекурсия, но он говорит не могу больше 200 раз вызывать самого себя...
сет интервал тоже не подходит, потому что начинает накладывать действия друг на друга и вообще тормоз полный.
как быть то ???
Прорисовывать пачками каждый фрейм.
motor4ik
17.10.2006, 16:20
странные вещи творятся ( сделал чтобы каждый фрейм грузил один мувик, так сначала скорость нормальная, потом замедляется и в 1/4 умирает по одному мувику в секунду...что за фигня (((
motor4ik
17.10.2006, 16:42
function for_ij():Void{
//атачим ячейку
var mov:MovieClip=targ.attachMovie('cell','cell'+i+'_'+j,i*100+j);
j++;
if (j>=ln1){
i++;
j=0;
}
if (i>=ln){
clearInterval(st);
wind.remove();
}
}
var st:Number=setInterval(for_ij,40);
гдето первые 10% резво выполняются, на 20% сдыхает..
motor4ik
17.10.2006, 16:46
странно замени setInterval на onEnterFrame таких глков не намечается, заполнение идет быстро , равномерно, во чудеса хотя, 40 мс, примерно соответсвует 24 кадрам в секунду...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.