Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Action script 2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=49)
-   -   как замедлить цикл? (http://www.flasher.ru/forum/showthread.php?t=58436)

2K WebStudio 21.05.2004 00:05

как замедлить цикл?
 
Код:

                        tt.all = go.to.split("**");
                        for (n=0; n<tt.all.length; n++) {
                                tt.beginFill(0xff0000, 0);
                                tt.lineStyle(1, 0xff0000, 100);
                                tt.all[n] = tt.all[n].split(':');
                                tt.all[n][0] = tt.all[n][0].split("|");
                                tt.moveTo(tt.all[n][0][0], tt.all[n][0][1]);
                                for (nn=1; nn<tt.all[n].length; nn++) {
                                        tt.all[n][nn] = tt.all[n][nn].split("|");
                                        tt.lineTo(tt.all[n][nn][0], tt.all[n][nn][1]);
                                        tt.moveTo(tt.all[n][nn][0], tt.all[n][nn][1]);
                                }
                                tt.endFill();
                        }

Код получает сроку с кординатами точек нескольких кривых и строит в цикле всё по точкам!
А как сделать то же самое, но медленнее, чтобы был виден процесс рисования?

silin 21.05.2004 00:22

вместо for(i=0;i<length;i++){....}

n=length;
this.onEnterFrame=function(){
if(n--){....}
else delete this.onEnterFrame;
}
зы: или setInteval

2K WebStudio 21.05.2004 18:56

это слишком просто...
вой вариант работает с одним циклом, а у мнея их два, один в другом...

Крин 21.05.2004 19:44

Попробуй через setInterval
Я так делал... работает, правда точно не помню как с ним правильно работать, давно делал.

silin 21.05.2004 20:15

Цитата:

Оригинал написал(а) 2K WebStudio
это слишком просто...
вой вариант работает с одним циклом, а у мнея их два, один в другом...

Код:

a=5;
b=3;
funO=function(n){trace("outer "+n+"______")};
funI=function(n){trace("inner "+n)};
/////////////////////////////сразу/////////
for(i=0;i<a;i++){
        funO(i);
        for(j=0;j<b;j++) funI(j)
}
//////////////////////////////задержка/////
j=0;
i=0;
loop=function(){
        if(i==a && !j) {clearInterval(l);return;}
        if(!j) funO(i++);
        funI(j++);
        j%=b;
}
l=setInterval(loop,500);

сравни ,тока не запускай оба куска вместе

Крин 21.05.2004 22:02

Вооо... вот это то я и имел ввиду...
Хорошо када есть знающие люди. :-)
не то что я всё забываю... :-) вечно по хулпу ковыряюсь.

2K WebStudio 26.05.2004 18:10

Спасибо, в теории работать должно, на практике не пытался...


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

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