Страница 1 из 3

Отчет времени на AS3

Добавлено: 13 дек 2009, 21:52
BIOS
Помогите плиз! Дайте код отсчета времени на AS3

Re: Отчет времени на AS3

Добавлено: 13 дек 2009, 22:55
Александр

Код: Выделить всё

var repeat=10;var myTimer:Timer=new Timer(1000,repeat);myTimer.addEventListener(TimerEvent.TIMER, timerListener); function timerListener(e:TimerEvent):void {    repeat--;    trace("Timer is Triggered " + repeat);}myTimer.start();

Re: Отчет времени на AS3

Добавлено: 14 дек 2009, 00:11
BIOS
Александ я имел ввиду как вот этот скрипт

Код: Выделить всё

// Создаём текстовое поле для отображения данных_root.createTextField("time_txt", 1, 10, 0, 290, 20);with (time_txt) {    border = true;}// Задаём дату до которой вести отчёт, пишем год, потом месяц (отсчёт месяцев начинается с 0), затем пишем числоyourDate = new Date(2010, 0, 0);yourDateMsec = yourDate.getTime();//F_countDown = function () {    // создаём класс Date , который отслеживает текущее время    nowDate = new Date();    // Вычисляем количество милисекунд    nowDateMsec = nowDate.getTime();    //    var msec = yourDateMsec-nowDateMsec;    // Делаем проверку на наступление даты    if (msec<=0) {        // Если наступило        time_txt.text = "Уже наступило";        clearInterval(interval);    } else {        // Если ненаступило то продолжаем выполнение счётчика        // Вычисляем из общего количества милисекунд, количество секунд        var sec = Math.floor(msec/1000);        // Вычисляем из общего количества милисекунд, количество минут        var min = Math.floor(sec/60);        // Вычисляем из общего количества милисекунд, количество часов        var hour = Math.floor(min/60);        // Вычисляем из общего количества милисекунд, количество суток        var day = Math.floor(hour/24);        // Отсекаем от полученных секунд остаток от деления, т.е. то число которое осталось        // при делении на 60 так как в минуте 60 секунд        sec %= 60;        // при делении на 60 так как в часе 60 минут        min %= 60;        // при делении на 24 так как в сутках 24 часа        hour %= 24;        // Записываем результат в текстовое поле        time_txt.text = "Осталось: Дней "+day+", Часов: "+hour+", Минут: "+min+", Секунд: "+sec;    }};// Создаём setInterval для запуска нашей функции F_countDown, // который будет запускать её раз в секунду потому что чаще нам не нужноinterval = setInterval(F_countDown, 1000);// Запускаем функциюF_countDown(); 
Вот только этот на AS2, можно как нибудь сделать тоже самое только на AS3

Re: Отчет времени на AS3

Добавлено: 14 дек 2009, 14:58
Александр
Можно сделать практически так же.

Код: Выделить всё

// Создаём текстовое поле для отображения данныхvar time_txt:TextField = new TextField();time_txt.autoSize = TextFieldAutoSize.LEFT;time_txt.x=10;time_txt.y=10;addChild(time_txt); // Задаём дату до которой вести отчёт, пишем год, потом месяц (отсчёт месяцев начинается с 0), затем пишем числоvar yourDate=new Date(2010,0,0);var yourDateMsec=yourDate.getTime();//function F_countDown() {    // создаём класс Date , который отслеживает текущее время    var nowDate = new Date();    // Вычисляем количество милисекунд    var nowDateMsec=nowDate.getTime();    //    var msec=yourDateMsec-nowDateMsec;    // Делаем проверку на наступление даты    if (msec<=0) {        // Если наступило        time_txt.text="Уже наступило";        clearInterval(interval);    } else {        // Если ненаступило то продолжаем выполнение счётчика        // Вычисляем из общего количества милисекунд, количество секунд        var sec=Math.floor(msec/1000);        // Вычисляем из общего количества милисекунд, количество минут        var min=Math.floor(sec/60);        // Вычисляем из общего количества милисекунд, количество часов        var hour=Math.floor(min/60);        // Вычисляем из общего количества милисекунд, количество суток        var day=Math.floor(hour/24);        // Отсекаем от полученных секунд остаток от деления, т.е. то число которое осталось        // при делении на 60 так как в минуте 60 секунд        sec%=60;        // при делении на 60 так как в часе 60 минут        min%=60;        // при делении на 24 так как в сутках 24 часа        hour%=24;        // Записываем результат в текстовое поле        time_txt.text="Осталось: Дней "+day+", Часов: "+hour+", Минут: "+min+", Секунд: "+sec;    }} // Создаём setInterval для запуска нашей функции F_countDown, // который будет запускать её раз в секунду потому что чаще нам не нужноvar interval=setInterval(F_countDown,1000);// Запускаем функциюF_countDown();

Re: Отчет времени на AS3

Добавлено: 15 дек 2009, 18:52
BIOS
Спасибо огромное!

Re: Отчет времени на AS3

Добавлено: 29 дек 2009, 17:21
romarius777
А как сделать, чтобы генерировалось случайное число и от этого числа начиналя отсчет времени?

Re: Отчет времени на AS3

Добавлено: 29 дек 2009, 19:38
Александр
romarius777
Для генерация случайного числа используй Math.random()
Если нужно от одного числа досчитать до другого, то можно просто немного доработать код из второго собщения этой темы.

Re: Отчет времени на AS3

Добавлено: 29 дек 2009, 20:49
romarius777
Александр.
Правильно ли я понял, как это сделать?

Код: Выделить всё

var repeat=Math.random(100);var myTimer:Timer=new Timer(1000,repeat);myTimer.addEventListener(TimerEvent.TIMER, timerListener); function timerListener(e:TimerEvent):void {   repeat--;   a.text = ("Timer is Triggered " + repeat);}myTimer.start();
И при компиллиции выдает ошибку :
1137: Incorrect number of arguments. Expected no more than 0.

Re: Отчет времени на AS3

Добавлено: 30 дек 2009, 15:27
Александр
romarius777
Где ты прочитал о таком использовании Math.random() ?

Math.random() - это случайное число, может быть даже не целым.
repeat - в этом случае должно быть целым числом.

Округляй случайное число:

Код: Выделить всё

int(Math.random()*100)
repeat - количество повторов таймера. Чтобы узнать, сколько тебе нужно сделать повторов от одного числа до другого, нужно сделать некоторые вычисления.

Re: Отчет времени на AS3

Добавлено: 16 фев 2010, 19:28
psix55
вопрос : можно как-нибудь сделать чтобы начинал отчёт от UNIXTIME , а не от нормальной даты??? :D
заранее спасибо!