PDA

Просмотр полной версии : Сменяющиеся цифры в Dynamic Text с помощью AS 2


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

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

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

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

stantler
25.11.2011, 06:57
Посмотрите в сторону setInterval() (http://flash-mx.ru/help/Help/ActionScriptLangRef/00001662.html) и clearInterval() (http://flash-mx.ru/help/Help/ActionScriptLangRef/00001270.html#3945377)


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 больше, чем соответствующее данной частоте кадров ролика значение, вызов функции будет происходить при каждой смене кадров (точнее, когда воспроизводящая головка на Таймлайне входит в кадр); это минимизирует излишне частое обновление экрана.