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

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

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

Регистрация: Jul 2008
Сообщений: 18
По умолчанию Сменяющиеся цифры в Dynamic Text с помощью AS 2

Здравствуйте, можно ли в actionscript сделать такую вещь:

В первые 5 секунд ролика в dynamic text прогоняются цифры от 1 до 100
Следующие 5 секунд цифры от 100 до 1000 (т.е. цифры сменяются гораздо быстрее)
След 5 сек - еще одно ускорение - показываются цифры от 1000 до 10000. Т.е. что вроде ступенчатого спидометра.

Я когда-то работал с loader где в динамич. текстовом поле прогонялись цифры от 1 до 100% (ход загрузки через .getBytesLoaded), но так как в actionscript не очень силен, не могу понять как сделать прогон цифр в зав-ти от кол-ва прошедщих миллисекунд, а не от хода загрузки.

Спасибо, если поможете.

Старый 25.11.2011, 06:57
stantler вне форума Посмотреть профиль Отправить личное сообщение для stantler Найти все сообщения от stantler
  № 2  
Ответить с цитированием
stantler
 
Аватар для stantler

Регистрация: Apr 2011
Адрес: Томск
Сообщений: 57
Посмотрите в сторону setInterval() и clearInterval()

Код AS1/AS2:
var current_number:Number = 0;
var intervalID:Number;
function NumbersBegin()
{
   intervalID = setInterval(NumbersInterval,5000/100);
}
function NumbersInterval()
{
   myTextField.text = current_number;
   if (current_number > 100 && current_number < 1000)
   {
      clearInterval(intervalID);
      intervalID = setInterval(NumbersInterval,5000/900);
   }
   else if (current_number > 1000 && current_number < 10000)
   {
      clearInterval(intervalID);
      intervalID = setInterval(NumbersInterval,5000/9000);
   }
   else { clearInterval(intervalID); }
}
5000 - это 5 секунд в миллисекундах. И это число мы делим на количество цифр, которые мы должны перебрать.
Так же, если:
Цитата:
interval меньше, чем соответствующей частоте кадров ролика интервал (например, 10 кадров в секунду [fps] соответствуют интервалу в 100 миллисекунд), функция будет вызываться с максимально возможно близкой (при данной частоте кадров) к interval частотой. Вы должны использовать функцию updateAfterEvent(), если необходимо обновлять изображение на экране. Если же занчение interval больше, чем соответствующее данной частоте кадров ролика значение, вызов функции будет происходить при каждой смене кадров (точнее, когда воспроизводящая головка на Таймлайне входит в кадр); это минимизирует излишне частое обновление экрана.


Последний раз редактировалось stantler; 25.11.2011 в 06:59.
Создать новую тему Ответ Часовой пояс GMT +4, время: 03:27.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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