Урок «Часы на ActionScript 2.0»

Код ActionScript 2.0 из видео:

onEnterFrame = function () { // создаём объект класса Date var d:Date = new Date(); // получаем текущее время в часах в виде строки var h:String = d.getHours().toString(); // получаем текущее время в минутах в виде строки var m:String = d.getMinutes().toString(); // получаем текущее время в секундах в виде строки var s:String = d.getSeconds().toString(); // если длина строки меньше двух символов, то добавляем в начало этой строки "0" if (h.length<2) { h = "0"+h; } if (m.length<2) { m = "0"+m; } if (s.length<2) { s = "0"+s; } // присваиваем текущее время текстовому полю clock clock.text = h+":"+m+":"+s; };

Один из вариантов того, что мы можем получить, представлен ниже:

Кстати, если код совсем немного изменить, то он будет работать и в ActionScript 3.0 (проверено в Adobe Flash CS5).

Код ActionScript 3.0:

addEventListener(Event.ENTER_FRAME,myclock); function myclock(event:Event):void { var d:Date = new Date(); var h:String = d.getHours().toString(); var m:String = d.getMinutes().toString(); var s:String = d.getSeconds().toString(); if (h.length < 2) { h = "0" + h; } if (m.length < 2) { m = "0" + m; } if (s.length < 2) { s = "0" + s; } clock.text = h + ":" + m + ":" + s; }

Автор: admin

Дата добавления: 2011-07-07

Просмотров: 14823

Рейтинг поста: +31-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): Вячеслав
Дата добавления: 2015-01-14
да, я понимаю, остановить можно с помощью removeEventListener, но я хочу что бы часики были на всех кадрах
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2015-01-14
> clock_fla::MainTimeline/enterFrame()

Ну, вам же намекают, что метод enterFrame надо остановить перед переходом на следующий кадр :)
Комментатор
Комментарий добавил(а): Вячеслав
Дата добавления: 2015-01-14
спасибо за урок, часики работают!
подскажите, почему, если часики всунуть в многокадровый ролик, то при захождении на страницу часов и именно выхода из этой страницы, флеш выдает бесконечную ошибку пока ролик запущен:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
clock_fla::MainTimeline/enterFrame()
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2014-08-20
> как сохранить часики

Файл - Экспорт - Экспортировать ролик - В открывшемся окне выбрать тип файла .swf

> как их потом можно вставить на свой сайт

Примерный код вставки:


<object type="application/x-shockwave-flash" data="название.swf" height="400" width="550"><param name="movie" value="название.swf"></object>


Поменяйте название, ширину и высоту на свои.
Комментатор
Комментарий добавил(а): Виктория
Дата добавления: 2014-08-20
Здравствуйте. Спасибо за ролик. У меня вопросы: как сохранить часики, которые мы создали самостоятельно и как их потом можно вставить на свой сайт?
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2013-07-04
Вероника, определение восхода/захода солнца - задача не из простых. Но если большой точности не требуется, то можно просто перерисовывать цвет фона часов в зависимости от того, какой сейчас час. Например, так: /* импорт классов */ import flash.filters.GlowFilter; /* контейнер для часов */ var cont:MovieClip = this.createEmptyMovieClip("cont", this.getNextHighestDepth()); /* рисуем фон */ drawFon(0xffffff); /* текстовое поле, в котором выводится время */ var clock:TextField = cont.createTextField("clock", cont.getNextHighestDepth(), 0, 0, Stage.width, Stage.height); clock.type = "dynamic"; clock.selectable = false; clock.border = false; clock.background = false; clock.multiline = false; clock.wordWrap = false; clock.text = "00:00:00"; /* GlowFilter для текстового поля */ clock.filters = [new GlowFilter(0x000000, 40, 10, 10, 2, 1, false, false)]; /* форматирование текстового поля */ var tf:TextFormat = new TextFormat(); tf.font = "_sans"; tf.size = 64; tf.color = 0xffffff; tf.align = "center"; tf.bold = true; clock.setTextFormat(tf); /* функция, которая в каждом кадре изменяет время + изменяет цвет фона у часов */ onEnterFrame = function () { /* изменяем время */ var d:Date = new Date(); var h:String = d.getHours().toString(); var m:String = d.getMinutes().toString(); var s:String = d.getSeconds().toString(); if (h.length < 2) { h = "0" + h; } if (m.length < 2) { m = "0" + m; } if (s.length < 2) { s = "0" + s; } clock.text = h + ":" + m + ":" + s; clock.setTextFormat(tf); /* изменяем цвет фона */ var hNumber:Number = d.getHours(); var colorFon:Number; if ((hNumber > 6) && (hNumber < 21)) { colorFon = 0xffffff; } else { colorFon = 0x999999; } drawFon(colorFon); }; /* функция, перерисовывающая фон у часов */ function drawFon(color:Number) { cont.clear(); cont.beginFill(color,100); cont.moveTo(0,0); cont.lineTo(Stage.width,0); cont.lineTo(Stage.width,Stage.height); cont.lineTo(0,Stage.height); cont.lineTo(0,0); cont.endFill(); }
Комментатор
Комментарий добавил(а): Вероника
Дата добавления: 2013-07-04
Я не могу найти нигде как сделать так, чтоб под часами например с изменением времени суток менялся фон со светлого на темный..не подскажете?
Заранее спасибо.
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2011-07-18
Вариаций много, но все они основаны на работе с классом Date. Кроме этого, моей целью было показать наиболее простой способ создания приложения.
Комментатор
Комментарий добавил(а): Yura
Дата добавления: 2011-07-17
Класс, а ещё можно сделать цифровые часы другим методом, но я его едапскову скажу и он выложит. :-)
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Страница 2 из 2: 12
Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика