На этом месте находится расчудесная шапка. Включите flash - не пожалеете!

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Как перебрать поочерёдно функции
Дож
сообщение 16.4.2008, 10:54
Сообщение #1


Поселенец
**

Группа: Пользователи
Сообщений: 126
Регистрация: 16.4.2008

Пользователь №: 13 423



Репутация:   0  


Здравствуйте уважаемые специалисты!
На форуме впервые, к томуже абсолютный новичёк в технологии (надеюсь на снисхождение).
Суть вопроса:
существуют 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
Сообщение #2


Мишка-Админ
*********

Группа: Главные администраторы
Сообщений: 8 616
Регистрация: 7.1.2006
Из: Санкт-Петербург

Пользователь №: 12



Репутация:   148  


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


--------------------
Пользователь в онлайне!Карточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Дож
сообщение 16.4.2008, 12:12
Сообщение #3


Поселенец
**

Группа: Пользователи
Сообщений: 126
Регистрация: 16.4.2008

Пользователь №: 13 423



Репутация:   0  


Спасибо большое!
Не могли бы коротко пояснить что есть - call()?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nikitar
сообщение 16.4.2008, 12:31
Сообщение #4


Мишка-Админ
*********

Группа: Главные администраторы
Сообщений: 8 616
Регистрация: 7.1.2006
Из: Санкт-Петербург

Пользователь №: 12



Репутация:   148  


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

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


и

Код
my_function.call();


--------------------
Пользователь в онлайне!Карточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Дож
сообщение 16.4.2008, 12:46
Сообщение #5


Поселенец
**

Группа: Пользователи
Сообщений: 126
Регистрация: 16.4.2008

Пользователь №: 13 423



Репутация:   0  


[
Код
my_function.call();

[/quote]

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

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


Прикрепленные файлы
Прикрепленный файл  sgt.rar ( 4.53 килобайт ) Кол-во скачиваний: 20
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nikitar
сообщение 16.4.2008, 12:59
Сообщение #6


Мишка-Админ
*********

Группа: Главные администраторы
Сообщений: 8 616
Регистрация: 7.1.2006
Из: Санкт-Петербург

Пользователь №: 12



Репутация:   148  


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


--------------------
Пользователь в онлайне!Карточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Дож
сообщение 16.4.2008, 13:05
Сообщение #7


Поселенец
**

Группа: Пользователи
Сообщений: 126
Регистрация: 16.4.2008

Пользователь №: 13 423



Репутация:   0  


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

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

Ну да...
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Дож
сообщение 16.4.2008, 17:35
Сообщение #8


Поселенец
**

Группа: Пользователи
Сообщений: 126
Регистрация: 16.4.2008

Пользователь №: 13 423



Репутация:   0  


Ну вот, проще нет, кажется разобрался 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() помогло!
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 5.7.2008, 0:09
Rambler's Top100 Яндекс цитирования