Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум о web-дизайне, графике - RusForumz _ Adobe (Macromedia) Flash _ Как перебрать поочерёдно функции

Автор: Дож 16.4.2008, 10:54

Здравствуйте уважаемые специалисты!
На форуме впервые, к томуже абсолютный новичёк в технологии (надеюсь на снисхождение).
Суть вопроса:
существуют 6 функций but1(); but2();.........but6(); так вот я завис на том, что не знаю как перебрать эти функции последовательно с помощью какой либо одной запустив некий цикл.

Код

function but1() {    
this.createEmptyMovieClip("m2_mc", 6);    _
level0.m2_mc.attachMovie("b2_btn", "b2_btn", 1);
trace("1");
}
functionbut2() {    
this.createEmptyMovieClip("m2_mc", 6);    _
level0.m2_mc.attachMovie("b2_btn", "b2_btn", 1);
trace("2");
}
/////////............
function but6() {    
this.createEmptyMovieClip("m6_mc", 10);    
_level0.m6_mc.attachMovie("b6_btn", "b6_btn", 1);
trace("6");
}

var intervalS=setInterval(cur,1000);

fuhction cur() {
for( --?


вот и вопрос: как это реализовать? Что писать в цикле, чтобы указанные функции поочереди вызывались? Может как то массивы для этого использовать? Надеюсь хоть на какую-нибудь подсказку.
С уважением,

Автор: nikitar 16.4.2008, 11:27

Код
for(i=1; i<=6; i++){
_root["but"+i].call()
}

Автор: Дож 16.4.2008, 12:12

Спасибо большое!
Не могли бы коротко пояснить что есть - call()?

Автор: nikitar 16.4.2008, 12:31

Цитата
Не могли бы коротко пояснить что есть - call()?

Вызов функции.
Есть два варианта вызова функции (например, функция my_function)
Код
my_function();


и

Код
my_function.call();

Автор: Дож 16.4.2008, 12:46

[

Код
my_function.call();

[/quote]

С этим вариантом программа запускает все функции одновременно с промежутком установленном в setInterval, наверное что-то ещё опустил.

Вот убрал всё лишнее из исходника и оставил только 3 функ. с трейсами если не сложно помотрите.


Прикрепленные файлы
Прикрепленный файл  sgt.rar ( 4.53 килобайт ) Кол-во скачиваний: 27

Автор: nikitar 16.4.2008, 12:59

Ну естественно, это же цикл.
А ты хочешь, чтобы через 1 секунду запускалась следующая функция?

Автор: Дож 16.4.2008, 13:05

Цитата(nikitar @ 16.4.2008, 13:59) *

Ну естественно, это же цикл.
А ты хочешь, чтобы через 1 секунду запускалась следующая функция?

Ну да...

Автор: Дож 16.4.2008, 17:35

Ну вот, проще нет, кажется разобрался smile.gif .... хотя и с Вашей помощью.
Вот код который работает как надо:

Код


var intervalS=setInterval(cur,1000);
i=0
function cur() {
    if(i<=3){
        i++
_root["but"+i].call()
}
if(i==3) {
    clearInterval(intervalS)
};
};


Спасибо, вот это _root["but"+i].call() помогло!

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)