PDA

Просмотр полной версии : Чем дальше тем медленнее


Amortizator
07.03.2003, 22:02
Привет,
Вобщем смысл такой, надо создать точки заданным цветом, и разместь их друг с другом, визуально это выглядит как прямоуголник с определенным цветом. Сразу прямоугольник рисовать НЕЛЬЗЯ. Собирается это все построчно, у меня все получилось, но начинается все бодренько, а заканчивает еле еле.
Вопрос - как избавится от замедления???
Прилагаю исходник и код функции, функция вызывается на след кадре, путем циркуляции между 3 и 4.

radiusT=1; //длинна точки ( по умолчанию 1px)
xcor=62; //координаты левого верхнего угла прямоугольника
ycor=16; //
colorPixel="0x000000"
function kart(){
if(a<=120){
for(b=0; b<=169; b++){
_root.lineStyle(radiusT, colorPixel, 100);
_root.moveTo(xcor+a, ycor+b-1);
_root.lineTo(xcor+a, ycor+b);
}
a++; //создаем след строку по вертикали
}
}

TTS
07.03.2003, 23:30
Так не пойдёт?

Должен заметить, что твою прорисовку линий по точкам никто не увидит, т.к. линия целиком рисуется в одном кадре; все точки отображаются одновременно после отработки всего скрипта кадра.

Amortizator
08.03.2003, 00:01
Привет,
Нет не так, дело в том что пиксили имеют разные цвета, которые изначально мы не знаем.
Я понимаю, что прорисовку каждого пикселя я не увижу, попиксильно они должны отрисовыватся, потому что AS должен динамически забирать цвет из массива.
Хотя скорость мне понравилась... :-)))

Как нибудь по другому можно уменьшить замедление???

TTS
08.03.2003, 00:58
Да нет, наверно.
Ну кроме всяких там незначительных ускорений типа за счёт рисования наиболее часто используемого цвета фоном или сведения рядом стоящих точек одного цвета в одну прямую или многоугольник.

Amortizator
08.03.2003, 11:06
Жаль... :-(
Такая мазовая вещь обламалась...
Ну все равно спасибо за ответ :-)

greyshaman
09.03.2003, 15:33
В общемто причины уже объяснялись.

radiusT=1; //длинна точки ( по умолчанию 1px)
xcor=62; //координаты левого верхнего угла прямоугольника
ycor=16; //
function kart(){
if(a<=120){
_root.createEmptyMovieClip("mc"+a,a);
_root["mc"+a]._x=xcor+a;
with(_root["mc"+a]){
for(b=0; b<=169; b++){
colorPixel=random(256*256*256);
lineStyle(radiusT, colorPixel, 100);
moveTo(0, ycor+b-1);
lineTo(0, ycor+b);
}}
a++; //создаем след строку по вертикали
}
}
stop();

Amortizator
09.03.2003, 18:51
Спасибо greyshaman, то что надо!
А то я уже надежду потерял. :cool:

TTS
10.03.2003, 02:19
Клёво

greyshaman
10.03.2003, 14:02
Не радуйтесь.
Когда захочется динамики.
Вас продинамит обработка массива.

Nox Noctis
10.03.2003, 14:14
шаман хокку про экшнскрипт сочиняет :))