Показать сообщение отдельно
Старый 10.12.2009, 23:59
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Автор, вот что я имею ввиду. Пример:
Код AS1/AS2:
//в начале мувики невидимы
for (i = 1; i <= 10; i++) {
	_root['mc' + i]._visible = false ;
}
 
//создаем объект-хранилище для переменных, которые будут содержать номера таймаутов
var indexOfTimeouts:Object = new Object();
 
//стартует показ мувиков с все возрастающей задержкой
startShow.onRelease = function  () {
	for (i = 1; i <= 10; i++) {
		indexOfTimeouts[i] = setTimeout(showMc, i * 500, i); //передаем в функцию аргументом номер i
	}
}
 
//сама функция показа
function showMc (num:MovieClip) {
	_root['mc' + num]._visible = true ;
}
 
//очищает все таймауты, беря номера из переменных, которые содержатся в специальном объекте 
sopShow.onRelease = function  () {
	for (i in indexOfTimeouts) {
		clearTimeout(indexOfTimeouts[i]);
	}
};
См. Работающий пример Очистка нескольких таймаутов.rar
То есть рекомендую организовать некое хранилище, наподобие объекта indexOfTimeouts в примере, куда будете складывать номера всех вызванных таймаутов, а к обработчику события перехода на другой кадр (не знаю, что там у вас, нажатие кнопки или что, это неважно) добавить вызов цикла очистки всех таймаутов по номерам, как это сделано в конце кода.

PS. veles2008, разобрались? Да, иногда рациональнее использовать setTimeout, если нужно выполнить что-то только раз. Хотя если делать очистку правильно, то и интервалы все должны очищаться.
Вложения
Тип файла: rar Очистка нескольких таймаутов.rar (9.9 Кб, 110 просмотров)


Последний раз редактировалось mooncar; 11.12.2009 в 00:06.