Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Функция таймера (http://www.flasher.ru/forum/showthread.php?t=192351)

olga007 12.01.2013 18:28

Функция таймера
 
Всем привет, помогите пожалуйста разобраться с таймером:

Код AS3:

var T:Timer = new Timer(15000);
T.addEventListener(TimerEvent.TIMER, animation);
T.start();

Как сделать, чтобы функция animation исполнялась сразу и потом через каждые 15 секунд?
Сейчас у меня получается, что таймер первый раз начинает эту функцию исполнять только через 15 секунд.

У меня есть решение - просто запустить функцию animation(), но она требует параметр типа TimerEvent, а я не знаю что туда написать.

КорДум 12.01.2013 18:29

Код AS3:

animation(null);


fd96 12.01.2013 18:52

Код AS3:

        var t:Timer = new Timer(15000, 0);
t.addEventListener(TimerEvent.TIMER, animation)
t.start()
public function animation(event:TimerEvent):void
{
  // Тут ваша анимация.
}
(


КорДум 12.01.2013 19:10

fd96, прочтите внимательно вопрос.

fd96 12.01.2013 19:17

Исправлюсь.
Код AS3:

var t:Timer = new Timer(20, 0);
t.addEventListener(TimerEvent.TIMER, animation)
t.start()
public function animation(event:TimerEvent):void
{
  // Тут ваша анимация.
  // Тут меняем таймер.
  t.delay = 15000;
}


olga007 12.01.2013 19:20

Ура ура ура :)
Спасибо большое, все заработало.

iflamberg 12.01.2013 19:45

Ольга, очень надеюсь, что вы сделали, как писал КорДум, а не fd96. Ставить таймер на 20 миллисекунд, а потом каждый раз по таймеру выставлять его на 15 секунд - это совсем не то же самое, что, просто вызвать событие таймера один раз после его создания.

fd96 12.01.2013 19:47

Я в личке уже рассказал , что это не самый верный путь , но самый простой =)

iflamberg 12.01.2013 19:49

Т.е. по-твоему
Код AS3:

var t:Timer = new Timer(20, 0);
t.addEventListener(TimerEvent.TIMER, animation)
t.start()
public function animation(event:TimerEvent):void
{
  // Тут ваша анимация.
  // Тут меняем таймер.
  t.delay = 15000;
}

проще, чем
Код AS3:

var t:Timer = new Timer(15000, 0);
t.addEventListener(TimerEvent.TIMER, animation)
t.start()
animation (null);
public function animation(event:TimerEvent):void
{
  // Тут ваша анимация.
}


fd96 12.01.2013 19:51

Не то чтобы проще , но при коде в 150 строк и маленькой анимации на сайте подойдёт и мой путь , даже не смотря на дополнительную задержку и небольшую утечку памяти.

Добавлено через 34 секунды
Он проще в понимации


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

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