Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   setTimeout в цикле (http://www.flasher.ru/forum/showthread.php?t=93587)

Yukagir 24.03.2007 18:28

setTimeout в цикле
 
Здравствуйте.
Помогите, пож., разобраться.
Есть функция на открытие четырех подменю
Код:

function current_sbm_open(){
        for(var i:Number = 1; i<but_nums+1; i++){
                var temp_sbm = this["sbm"+i];
                setTimeout(function(){temp_sbm.play();}, 1000*(i-1));
                trace(temp_sbm);
        };
};

but_nums равен 4
открывается только четвертый клип. Причем сразу без задержки.
А в trace указывается все правильно - по порядку все четыре имени.
Код:

_level0.sbm4.sbm1
_level0.sbm4.sbm2
_level0.sbm4.sbm3
_level0.sbm4.sbm4

Спасибо.

iNils 24.03.2007 18:44

Код:

function current_sbm_open () {
        for (var i:Number = 1; i < but_nums + 1; i++) {
                var temp_sbm = this["sbm" + i];
                setTimeout (temp_sbm, "play", 1000 * (i - 1));
        }
}


Yukagir 24.03.2007 18:48

супер. спасибо большое. в который раз помогаете.

iNils 24.03.2007 19:00

Кстати, trace у вас не там стоял. Надо было внутри функции, где был записан play, тогда бы увидели, что на самом деле на момент вызова, обращение идет к последнему мувиклип все 4 раза.

Yukagir 24.03.2007 19:14

точно -)) ну, все с опытом приходит. впредь буду знать. спасибо большое еще раз.


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

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