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

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

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

Регистрация: Nov 2009
Сообщений: 67
По умолчанию Выполнение через определённое время

Уважаемые форумчане, подскажите как выполнить действие через определённое время?
пробовал setInterval, но действие у меня повторяется каждые n cекунд, а нужно однократное выполнение.

В частности, хочу сделать переход на ссылку через 10 секунд, как это оформить на AS3? ниже мой код. Переход на localhost происходит через каждые 5 секунд, а нужно один раз..
Код AS3:
stop();
var delay:Number = 5000;
var id:uint = setInterval(goNext, delay);
 
function goNext():void
{
	mc.gotoAndStop(2);
	navigateToURL( new URLRequest( "http://localhost/" ), "_blank" );
}

Старый 07.12.2011, 04:58
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 2  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
setInterval Возвращает uint — Уникальный числовой идентификатор отложенного процесса. Используйте этот идентификатор для отмены процесса, вызвав метод clearInterval().

А вообще рекомендуется пользоваться классом Timer. Там, кстати, вызов с явным аргументом опр. кол-во срабатываний.

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

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Для однократного исполнения можно воспользоваться setTimeout
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 07.12.2011, 10:55
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 4  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от ChuwY Посмотреть сообщение
Для однократного исполнения можно воспользоваться setTimeout
сейчас не вспомню, но где-то читал что не рекомендуется пользоваться ни setInterval, ни setTimeout,
то ли они сделаны просто для соблюдения ECMA, то ли оставлены как атавизм прошлых версий,
то ли просто не надежны, что то такое ) В общем почему не помню, но не пользуюсь этими штуками )

Старый 07.12.2011, 11:26
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 5  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от fish_r Посмотреть сообщение
сейчас не вспомню, но где-то читал что не рекомендуется пользоваться ни setInterval, ни setTimeout
В документации.

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
но где-то читал что не рекомендуется пользоваться ни setInterval, ни setTimeout
Где-то
Цитата:
Вместо использования метода setInterval() рекомендуется создавать объект Timer с заданным интервалом, в котором в качестве параметра repeatCount используется значение 0 (то есть таймер выполняется бесконечно).
Цитата:
Вместо использования этого метода рекомендуется создавать объект Timer с указанным интервалом, в котором в качестве параметра repeatCount используется значение 1 (то есть таймер запускается один раз).
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 07.12.2011, 11:50
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 7  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
А почему не рекомендуется никто не объяснит?
Слышал только весьма расплывчатые рассуждения.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 07.12.2011, 11:54
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 8  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Ну, насколько я помню, обе функции являются обертками вокруг обычного Timer. Зачем мне обертка, если я могу использовать сам Timer?
И второе - что таймер каждый раз создается заново (на каждый вызов setTimeout или setInterval) - а это плохо с точки зрения потребляемых ресурсов
__________________
...вселенская грусть

Старый 07.12.2011, 12:13
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 9  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Ну как вариант, вместо setTimeout, можно свою обвертку с пулом таймеров написать.
__________________
ranga

Старый 07.12.2011, 12:36
Srednas вне форума Посмотреть профиль Отправить личное сообщение для Srednas Найти все сообщения от Srednas
  № 10  
Ответить с цитированием
Srednas

Регистрация: Nov 2010
Сообщений: 430
Можно запустить таймер на 10 секунд, а при срабатывании удалить слушатель.

Еще такая штука есть, может пригодиться.

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

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

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


 


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


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