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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

Регистрация: Dec 2007
Сообщений: 21
По умолчанию Таймаут при выполнении цикла

Есть у меня массив с данными, который выводится в цикле. Я хочу чтобы при его переборке на каждой итерации возникала пауза в несколько секунд для показа текста.
Я пробовал setInterval, но получилось плохо, как лучше сделать? Спасибо!

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Код AS3:
var idInt:Number = setInterval (echo, 1000);
var limit:Number = 10;
var count:Number = 0;
function echo () {
	trace (count);
	if (++count == limit) {
		clearInterval (idInt);
	}
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Код AS3:
var i:int = 0;
var arr:Array = ["a", "b", "c", "d"];
 
function iterate():void
{
	trace(i+":"+arr[i]);
	i++;
	if (i < arr.length)
	{
		setTimeout(iterate, 1000);
	}
}
iterate();

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

Регистрация: Dec 2007
Сообщений: 21
Спасибо всем большое, выбрал вариант с рекурсией)))

Старый 05.05.2009, 23:37
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
А где Вы тут рекурсию увидели?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 06.05.2009, 08:22
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 6  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Вариант Silin'a сойдет за косвенную рекурсию :о) Хотя даже и за нормальную сойдет.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 06.05.2009, 11:39
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от GBee Посмотреть сообщение
Вариант Silin'a сойдет за косвенную рекурсию :о) Хотя даже и за нормальную сойдет.
Эээм. Ну как бы раскомментируйте рекурсивный вызов, закомментировав setTimeout и Вы поймете в чем разница между рекурсией и нерекурсией.

Код AS3:
var i:uint = 0;
var arr:Array = ["a", "b", "c", "d"];
 
function iterate():void
{
	trace(i+":"+arr[i]);
	i++;
	if (i < arr.length)
	{
		setTimeout(iterate, 100);
		//iterate();
	} else {
		trace(new Error().getStackTrace() )
	}
 
}
iterate();
UPD. Начальник переубедил. Это рекурсия. Сложная. Но хорошая, потому что не переполняет стек.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 06.05.2009 в 12:53.
Создать новую тему Ответ Часовой пояс GMT +4, время: 14:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
timeout , интервал , пауза , таймаут
Опции темы
Опции просмотра

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

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


 


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


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