Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Чем дальше тем медленнее (http://www.flasher.ru/forum/showthread.php?t=43714)

Amortizator 07.03.2003 22:02

Чем дальше тем медленнее
 
Вложений: 1
Привет,
Вобщем смысл такой, надо создать точки заданным цветом, и разместь их друг с другом, визуально это выглядит как прямоуголник с определенным цветом. Сразу прямоугольник рисовать НЕЛЬЗЯ. Собирается это все построчно, у меня все получилось, но начинается все бодренько, а заканчивает еле еле.
Вопрос - как избавится от замедления???
Прилагаю исходник и код функции, функция вызывается на след кадре, путем циркуляции между 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

Вложений: 1
Так не пойдёт?

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

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

шаман хокку про экшнскрипт сочиняет :))


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

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