07:40 Создание рабочих часов на flash | |
Создание рабочих часов на flash одно из самых интересных задачь для начинающего программиста и флэшера. Программирование часов на ActionScript. Весь секрет создания анимировваных часов на ActionScript заключается в том, что Flash имеет возможность работать с датой и временем. За это отвечает объект: Date (object) Рассмотрим некоторые возможности объекта, которые нам помогут создать анимаированые часы. Такой анимированный скрипт можно встроить на сайт или же свделать из него оригинальную открытку. ![]() Для начала создаём новый файл размероми 100 х 50 px. На Scene1 в самом первом кадре помещаем динамический текст и присвоиваем ему имя "TimeField", как пример: ![]() Что бы было удобнее выравнивать, присвойте значение 00:00:00, все равно в процессе прокручивания ролика надпись сменится. Если вы используете какой-то "экзотический" шрифт, укажите, что начертание цифр и разделителя надо храниить в самом ролике: И на этом весь процесс рисования анимации заканчивается, начинаем программировать: Устанавливаем режим ExpertMode. В первом кадре в панели ActionScript мы вписываем следующий код: Time = new Date(); H = Time.GetHours(); M = Time.GetMinutes(); S = Time.GetSeconds(); if (Length(H) < 2) {H = "0" + H}; if (Length(M) < 2) {M = "0" + M}; if (Length(S) < 2) {S = "0" + S}; TimeField = H + ":" + M + ":" + S; Хотя данный код не представляет из себя что-то сложное и объёмное, давайте разберём его по частям, точнее построчно! В самой первой строке: Time = new Date(); мы создаем экземпляр объекта Date и присваиваем ему текущее системное время. В строках с 2-ой по 4-ую: H = Time.GetHours(); M = Time.GetMinutes(); S = Time.GetSeconds(); переменным H, M и S присваиваются значения часов, минут и секунд соответственно. В строках с 5-ой по 7-ую: if (Length(H) < 2) {H = "0" + H}; if (Length(M) < 2) {M = "0" + M}; if (Length(S) < 2) {S = "0" + S}; добавляем текстовый "0" к началу переменной в случае, если длина переменной меньше двух знаков (для красоты отображения времени). В заключительной строке мы присваеваем собранное значение для "TimeField": TimeField = H + ":" + M + ":" + S; Затем, во втором ключевом кадре ролика пишем код: GotoAndPlay(1); Вот и всё, и если вы правильно повторили все рассмотреные шаги, то часы должны "заработать". Совершенствуем часы на ActionScriptС простыми часамы мы, вроде бы, разобрались, теперь давайте попробуем усовершенствовать наши часы и приделать к ним стрелки. ![]() На слое "Grid" рисуем сам циферблат. Здесь разметка. Далее создаем три новых символа с часовой, минутной и секундной стрелками. (Учтите, что поворачиваться "стрелки" будут относительно центра, помеченного "крестиком"). Назовем их соответсвенно HArr, MArr и SArr: ![]() Помещаем символы на слой Arrows и в разделе Instance присвоим им имена HA, MA и SA:
![]() Для первого кадра слоя Arrows в панели ActionScript (не забудьте установить режим ExpertMode) пишем следующий код:
Time = new Date(); H = Time.GetHours(); M = Time.GetMinutes(); S = Time.GetSeconds(); HA._rotation = 30 * (H - 12) + M / 2; MA._rotation = 6 * M + S / 10; SA._rotation = 6 * S; Первые четыре строчки вам уже понятны по первому примеру, ну а в строках с 5-ой по 7-ую: HA._rotation = 30 * (H - 12) + M / 2; MA._rotation = 6 * M + S / 10; SA._rotation = 6 * S; мы вычисляем угол поворота для стрелок циферблата в зависимости от текущего времени. Во втором ключевом кадре ролика на слое Arrows пишем код: GotoAndPlay(1);
Инструкция
Установите программу
Macromedia Flash. Ее можно загрузить с официального сайта разработчика
Adobe. Запустите инсталлятор и следуйте инструкциям, которые будут
появляться на экране. После завершения запустите программу с помощью
созданного ярлыка на рабочем столе.
Выберите пункт «Создать новый флеш-документ». Создайте 3 слоя, которые понадобятся для управления отображением, а именно «Программный код», «Стрелки», «Фон».
Перейдите на слой «Стрелки», кликнув на палитре слоев в левой части окна программы. Нарисуйте 3 стрелки различной длины (для секунд, часов и минут соответственно).
Каждую стрелку переведите
в «Movie Clip» посредством правой клавиши мыши. Перейдите на слой
«Код», нажмите на первый кадр. В нижней части окна пишите код:hours =
fscommand2("GetTimeHours”);
minutes = fscommand2("GetTimeMinutes”); seconds = fscommand2(GetTimeSeconds”); hourspoint._rotation = 30*hours + 0.5*minutes; minutepoint._rotation = *6minutes + 0.1*seconds; secondpoint._rotation = 6*seconds; gotoAndPlay(1); Переменная hours получает
при помощи функции «GetTimeHours» соответствующее время. Аналогичным
образом работают минуты и секунды. Часовая стрелка получила название
hourspoint, а стрелки minutepoint и secondpoint получили минутные и
секундные значения. Задайте имя каждой стрелке в соответствующем окне
слоя «Стрелки», в нижней части окна во вкладке «Properties».
Переместите все стрелки в
одну. Это будет исходная 12-часовая точка. На слое «Фон» создаем нужную
картинку. Затем перейдите в меню «Файл» - «Создать» - «Экспортировать
фильм». Задайте имя для ваших часов. Тип укажите swf, нажмите
«Сохранить», версия FlashLite 1.1. Качество «JPEG – 100%». Ваши
аналоговые часы готовы.
| |
|
Всего комментариев: 0 | |