Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Общие вопросы

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 20.08.2004, 18:40
AStrike вне форума Посмотреть профиль Отправить личное сообщение для AStrike Посетить домашнюю страницу AStrike Найти все сообщения от AStrike
  № 1  
AStrike

Регистрация: May 2004
Адрес: Днепропетровск
Сообщений: 36
Question Вопрос про setInterval()

Я бы хотел загрузить функцию типа
function fun_name(){trace("shit");}
setInterval(fun_name(), 100);


А вопрос такой: "Почему эта хорошая функция выполняется всего 1 раз, а если мы далаем вот такую операцию
setInterval(function(){trace("shit");}, 100);
то все shit выкладывается в output так как и должно - 1 раз в 100 миллисекунд"
Я слышал что разница между подходами очень большая, в чем она и как мне сделать правильно мой первый вариант.?"

Старый 20.08.2004, 19:22
AStrike вне форума Посмотреть профиль Отправить личное сообщение для AStrike Посетить домашнюю страницу AStrike Найти все сообщения от AStrike
  № 2  
AStrike

Регистрация: May 2004
Адрес: Днепропетровск
Сообщений: 36
По умолчанию Никто не знает? Странно...

Никто не знает? Странно...

Старый 20.08.2004, 19:34
mishinaelle вне форума Посмотреть профиль Отправить личное сообщение для mishinaelle Посетить домашнюю страницу mishinaelle Найти все сообщения от mishinaelle
  № 3  
mishinaelle
 
Аватар для mishinaelle

Регистрация: Mar 2003
Адрес: Moscow
Сообщений: 669
Отправить сообщение для mishinaelle с помощью ICQ
у тебе обшибка:
вместо
setInterval(fun_name(), 100);

надо
setInterval(fun_name, 100);

Старый 20.08.2004, 19:57
AStrike вне форума Посмотреть профиль Отправить личное сообщение для AStrike Посетить домашнюю страницу AStrike Найти все сообщения от AStrike
  № 4  
AStrike

Регистрация: May 2004
Адрес: Днепропетровск
Сообщений: 36
По умолчанию Вообще-то у меня функция должна получать переменные

Вообще-то у меня функция должна получать переменные.
например
fun_name($var1,$var1){trace(this);}
setInterval(fun_name($var1,$var2), delay_time);
Вот этот случай мне и интересен

Старый 20.08.2004, 20:05
mishinaelle вне форума Посмотреть профиль Отправить личное сообщение для mishinaelle Посетить домашнюю страницу mishinaelle Найти все сообщения от mishinaelle
  № 5  
mishinaelle
 
Аватар для mishinaelle

Регистрация: Mar 2003
Адрес: Moscow
Сообщений: 669
Отправить сообщение для mishinaelle с помощью ICQ
сделай функцию без параметров
дергай нужные переменные из тела функции

Старый 21.08.2004, 00:53
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 6  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Ну-нууу, зачем же так жестко? setInterval в качестве аргументов с индексом (пусть первый аргумент - 0) >=2 получает параметры функции.

Т.е. setInterval(fun_name, 100, "First", "Second", "И т.п. ");

Так мы передали функции три параметра.
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 21.08.2004, 04:57
AStrike вне форума Посмотреть профиль Отправить личное сообщение для AStrike Посетить домашнюю страницу AStrike Найти все сообщения от AStrike
  № 7  
AStrike

Регистрация: May 2004
Адрес: Днепропетровск
Сообщений: 36
По умолчанию Пишу следующее

Спасибо - работает!
Все хорошее печально кончается - как после выполнения функции вырубить setInterval в этой же функции?

в хелпе сказано:
var intervalID;
intervalID = setInterval( callback, 1000 );

// sometime later
clearInterval( intervalID );

но мне это не подходит, нужно чтобы одна функция и останавливала и запускала себя. Или что-то в этом роде.


Последний раз редактировалось AStrike; 21.08.2004 в 05:03.
Старый 22.08.2004, 00:50
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 8  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Ничего не понимаю. Если тебе надо вырубить/запустить интервал из функции - напиши код в самой функции и все. Или чего?
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 22.08.2004, 01:56
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 9  
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
По умолчанию Re: Пишу следующее

Цитата:
Оригинал написал(а) AStrike
нужно чтобы одна функция и останавливала и запускала себя. Или что-то в этом роде.
вырубить себя сама она сможет, а сама себя на setInterval поставить - нет, потому как поставить на setInterval надо будет в теле самой функции, а как же он сработает если ф-ция к тому моменту ещё не определена, код же последовательно выполняется. Потому запускать по setInterval надо уже после того как ф-ция прописана

зы: извини если путанно

Старый 23.08.2004, 01:43
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 10  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Ммм... Отрицать слова FreeLander-а не могу, но и не совсем согласен с ними, уж извини. Вообще setInterval из тела функции запустить можно - это будет работать. Но фишка в том, что придется все-таки функцию вручную один раз запустить, чтобы она заработала и активировала интервал.

function a(){
trace("!");
setInterval(a, 1000);
}

a();

Но тут есть минус - придется ставить условие на интервал, а то с каждой секундой будут создаваться все новые и новые счетчики. Ну, скажем, сделать переменную doOnce, и врубить ее после первого включения интервала.... Но ведь ето нафиг не нужно, по-моему. Заниматься рекурсией (кажется, так этот процесс называется?) приходится очень редко....
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Создать новую тему   Часовой пояс GMT +4, время: 01:27.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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