Как прибавить нуль перед числом в ActionScript 3.0?
Приветствую!
Нужна помощь. Как в Action Sscript 3.0 задать условие: если число меньше десятка, то прибавлять к нему ноль спереди?
var date:Date = new Date();
var day = date.getDate(); if (day ???????) {day = "0" + day;}
trace (day);
Т.е. как прибавлять - вопроса нет, вот работающий код: {day = "0" + day;}
Непонятно, как заставить прослушиватель понимать, что число дня, к примеру, 2-е, меньше десятка и прибавлять к нему ноль спереди - "02"?
В AS 2.0 прекрасно работает вот этот параметр LENGTH (то есть, он даёт "01", "02" и т.д. вместо "1", "2" и т.д.):
onClipEvent(enterFrame)
{
day = clipDate.getDate(); // Задание Переменной дня!
if (length (day) == 1) {day = "0" + day;} // Если число меньше десятка, то + 0 к нему!
trace (day);
}
В as3 строгая типизация. В as2 всё работает из-за динамической типизации.
Во-первых date.getDate() возращает Number;
Во-вторых нужна отдельная переменная типа String для вашего значения.
В-третьих условие простейшее - if(day > 9)
Да, эта ваша строка if (day < 10) - работает (только вы знак "<" ("больше") перепутали с противоположным :)
А ведь я проверял эту конструкцию: if (day < 1) - а ноль не прибавил! Реально протупил... И дальше (вчера) решил вот таким образом, это тоже работает правильно:
if (day == 0){day = "0" + day;}
if (day == 1){day = "0" + day;}
if (day == 2){day = "0" + day;}
if (day == 3){day = "0" + day;}
if (day == 4){day = "0" + day;}
if (day == 5){day = "0" + day;}
if (day == 6){day = "0" + day;}
if (day == 7){day = "0" + day;}
if (day == 8){day = "0" + day;}
if (day == 9){day = "0" + day;}
Ещё раз спасибо. И если можно, то ещё вопрос: как этот скрипт заставить обновляться в реальном времени? То есть, в AS 2.0 секунды тикают (у меня скрипт: Дата+Время). А в AS 3.0 просто возвращает данные на момент запуска публикации, и чтобы тикало - просто клип с скриптом растянул на 2 кадра. А скриптовое решение есть?
illuzor, насколько я понимаю английский, здесь нет ни слова про возможность изменения скорости воспроизведения загружаемого видео. Как понимаю, такого параметра для видео в AS вообще нет:
illuzor, а вот документация и на русском - есть всё: от координат до прозрачности. Параметра, отвечающего за скорость произведения - НЕТ! Вы это мне хотели сказать?
illuzor, прочитал я документацию на русском, даже два раза и ещё один человек, и ни в свойствах, ни в методах - ничего похожего нет. Можно альфу, можно координаты, можно масштаб видео задать, но скорости, увы, нет. Я понимаю, что всё обходится и решается как-то хитровыделано (по опыту: любая задача решается во флеше полюбас в двух-трёх разных вариантах), но мозги у меня уже ничего не соображают :(
illuzor, супер ответ, респект! Это и без вашего участия понятно. Но я решил проблему по-другому. Просто перевёл видео в FLV и импортировал в библиотеку. А уж про скорость ФПС (по-русски: кадров в секунду), нам что-то да известно.
illuzor, здравствуйте! Сначала я хочу поблагодарить вас за подсказку с обновлением скрипта времени с помощью таймера. Нужно просто объявить функцию setInterval (время), а уж в неё зашивать скрипт времени.
Но у меня другой вопрос, если можно:
Как вы уже поняли, я дилетант. И поэтому спрашиваю: существует ли в языке AS 2.0 понятие множества (или диапазона) мувиклипов?
Например, я пишу условие: "Если координату Y, равную 100 пкс, занимает мувик1, или мувик2, или мувик 3 и т. д., то..."
IF (mc1._y = 100 or mc2._y = 100 or mc3._y = 100 or...) {}
Понятно, что если этих клипов десятки, то столько прописывать - это трудоёмко и отъём времени. Можно ли эти клипы объединить в какое-то множество или диапазон? Типа: mc1^10._y = 100 ? То есть, диапазон клипов от 1 до 10.
Или ещё проще: можно ли как-то объявить в условии, что "Если координата _y = 100 занята безымянным, неконкретным мувиклипом (то есть, любым), то..."?
То есть, объявить, что координата (с таким-то значением в пкс) просто занята клипом?