Форум 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=155018)

optemus 26.04.2011 18:11

возник вопрос по таймеру
 
Код AS3:

m.addEventListener(MouseEvent.CLICK, fl_ClickToHide);
  function fl_ClickToHide(event:MouseEvent):void
  { 
            // Простой таймер
                var fl_TimerInstance_2:Timer = new Timer(1000,0);
                fl_TimerInstance_2.addEventListener(TimerEvent.TIMER, fl_TimerHandler_2);
                fl_TimerInstance_2.start();
 
                // остоновка таймера
                                  b.addEventListener(MouseEvent.CLICK, fl_ClickToHide);
                          function fl_ClickToHide(event:MouseEvent):void
                            {
                                        fl_TimerInstance_2.stop();
                                        }
                // таймер делает
 
                function fl_TimerHandler_2(event:TimerEvent):void
                {
                        mk.rotation -= 1;
                        w.text = String(mk.rotation);
                }
  }

возникла необходимость в увеличении и уменьшении скорости таймера в момент его работы.
пробовала по кнопке обращаться к repeatCount (если правильно поняла из учебника, то это свойство отвечает за скорость) не помогло.
пожалуйста, подскажите.

in4core 26.04.2011 18:27

repeatCount - количество повторений, а не скорость

ChuwY 26.04.2011 18:30

Код AS1/AS2:

var fl_TimerInstance_2:Timer = new Timer(1000,0);

тысяча в данном случае -- время одного "тика" в миллисекундах.
увеличивай скорость, уменьшая его

optemus 26.04.2011 20:00

Цитата:

Сообщение от ChuwY (Сообщение 992300)
Код AS1/AS2:

var fl_TimerInstance_2:Timer = new Timer(1000,0);

тысяча в данном случае -- время одного "тика" в миллисекундах.
увеличивай скорость, уменьшая его

ну да я это знаю.
а вот как ее изменить в уже транслированном ролике вот в чем вопрос

goodguy 26.04.2011 20:24

Создать переменную
Код AS3:

var timerSpeed:Number = 1000;
var fl_TimerInstance_2:Timer = new Timer(timerSpeed, 0);

Именять ее значение когда потребуется

ChuwY 26.04.2011 20:35

Простые типы передаются по значению, а не по ссылкам.
Изменением timerSpeed мы ничего не добьемся.

Код AS3:

var delay                   : Number = 1000;
var fl_TimerInstance_2 :Timer = new Timer(delay);

а когда нужно сменить скорость, например

Код AS3:

var newDelay                : Number = 100; 
fl_TimerInstance_2.delay = newDelay;


Jewelz 26.04.2011 20:35

и что, будет меняться? :)

UPD: опередили демоны

optemus 26.04.2011 21:25

Цитата:

Сообщение от ChuwY (Сообщение 992317)
Простые типы передаются по значению, а не по ссылкам.
Изменением timerSpeed мы ничего не добьемся.

Код AS3:

var delay                   : Number = 1000;
var fl_TimerInstance_2 :Timer = new Timer(delay);

а когда нужно сменить скорость, например

Код AS3:

var newDelay                : Number = 100; 
fl_TimerInstance_2.delay = newDelay;


это не подходит изменение должно быть по кнопке и я не предстакляю как на 1 кнопку посадить 1000 изменений скорости таймера

wvxvw 26.04.2011 23:34

А зачем вы и таймер и слушателей создаете каждый раз по-новой? Вообще, просто никогда не объявляйте функции внутри дургих функций, и сразу легче жить станет. Есть вариант, что поскольку ни ссылок на слушателей ни на таймер после того как функция вернется не останется, его просто мусорщик удалит через какое-то время, а может наоборот, он будет работать всегда, а достучаться до него вы уже никак не сможете - зачем вам это?
По поводу изменения скорости - то что ChuwY написал, больше у вас никаких инструментов нет, да и не нужно. Я не совсем понял вашу последную реплику - что вы имели в виду когда написали "менять 1000 раз"? Можете кликнуть 1000 раз на кнопку, вот он 1000 раз и поменяет скорость... но похоже вы имели в виду что-то другое...

optemus 27.04.2011 00:42

да вы верно подумали.
не обходимо изменять скорость на разные величины не однократно.
больше всего подходит пример с педалью газа. Частота нажатий эффекта не даст, а вот усилие.
постепенно все быстрее и быстрее


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

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