Как сделать приветствие во Flash

Интернет

Изначально технология Flash была разработана для создания компьютерной анимации на основе векторных изображений. Позднее в рамках технологии был разработан специальный язык сценариев — ActionScript — позволивший превратить flash-ролики в полноценные приложения с интерактивными интерфейсами, использующие стандарты PHP и XML.

Для просмотра flash-роликов, имеющих расширение .swf, необходим flash-player, который может работать как самостоятельно, так и устанавливаться в качестве плагина для различных интернет-браузеров (в этом случае flash-ролик открывается прямо в окне браузера, что позволяет использовать технологию при создании веб-ресурсов).

Рассмотрим создание небольшого flash-приложения, для чего используем программу-редактор Macromedia Flash Professional v. 8 (предполагается, что мы знакомы с интерфейсом и основными навыками работы с данным продуктом).

Создадим Новый документ Flash и сохраним его, как welcome.fla. Fla-файлы — это, так называемые файлы-исходники, flash-проекты. Комбинацией клавиш CTRL+ALT+T откроем Временную Шкалу, в которой уже имеющийся слой переименуем в date (в нем мы разместим текстовые поля нашего приветствия) и создадим новый слой — code (в кадрах этого слоя разместим action-скрипты).

Как сделать приветствие во Flash

Выбрав на Панели инструментов (или клавишей T) инструмент Текст, в слое date создадим текстовое поле. В Панели Свойств, которая открывается по клавишам CTRL+F3, зададим свойства текстового поля: Тип текста — Динамический; Имя — day_ned; Шрифт — Tahoma; Размер шрифта — 12. А в самом поле введем слово — "Понедельник". Наведя курсор мыши на левый нижний угол поля, выровняем его размеры по тексту.

Как сделать приветствие во Flash

Рядом создадим еще три текстовых поля с именами day_mes, mes и god и с содержимым — "99", "Сентябрь" и "9999 года" соответственно. Вид и размер шрифта для всех текстовых полей сделаем одинаковым — Tahoma, 12. И для этих полей размеры отрегулируем мышью.
В принципе, на данном этапе в текстовые блоки можно вводить все, что угодно, лишь бы количество введенных символов совпадало с максимальным количеством символов, которое будет отображаться в этом блоке в рабочем состоянии. Например, самый длинный определитель дня недели будет — "Понедельник", значит, в поле day_ned можно ввести 11 произвольных символов (хотя бы и "00000000000").

Теперь создадим еще одно текстовое поле с содержимым " Здравствуйте! Сегодня — ". В свойствах этого блока можно задать Статический текст и Поле имени оставить пустым (этот блок не будет использоваться в коде).
При помощи мыши разместим текстовые блоки на рабочем пространстве нравящимся нам образом (в один горизонтальный ряд или друг под другом — неважно).

Теперь обратимся к Временной Шкале, выделим первый кадр слоя date и нажмем клавишу F5 (мы вставили пустой кадр). Выделив первый кадр слоя code, нажмем клавишу F8 (мы вставили пустой ключевой кадр).

Теперь, при выделенном втором кадре слоя code, нажмем клавишу F9 (откроется панель работы с кодом ActionScript). В поле ввода введем код 

gotoAndPlay(1);

После ввода кода на втором кадре слоя code во Временной Шкале появилась маленькая буква a , это означает, что в этом кадре запускается определенный нами код.
Выделив первый кадр слоя code, перейдем в панель работы с кодом (клавиша F9, если панельку успели уже закрыть).

Подготовительная часть работы выполнена. Вся остальная работа заключается в разработке кода.

Во-первых, создаем новый объект Date (он считывает данные о времени с системного таймера того компьютера, на котором запускается flash-ролик) и присваиваем ему имя day:

day = new Date();

Затем при помощи метода getDay получаем сведения о текущем дне недели и помещаем их в переменную dn:

dn = day.getDay();

и "привязываем" ее к текстовому блоку day_ned:

day_ned.text = dn;

Используя метод getDate, получаем данные о дне месяца, создаем переменную, содержащую эти данные и "привязываем" ее к текстовому блоку day_mes:

dt = day.getDate();
day_mes.text = dt;

Для получения данных о месяце и годе используем методы getMonth и getFullYear. Для этих данных также определяем свои переменные, которые "привязываем" к соответствующим текстовым блокам:

m = day.getMonth();
mes.text = m;
g = day.getFullYear();
god.text = g+" года";

В принципе, костяк кода готов и можно посмотреть, что же у нас получилось. Нажмем клавиши CTRL+Enter, программа скомпилирует ролик и покажет его нам в формате .swf.
Если все было сделано правильно, увидим мы что-то вроде этого: "Здравствуйте! Сегодня — 1 16 2 2009 года".

Пришло время немного отвлечься в сторону теории программирования. Как и любой другой язык программирования, ActionScript при работе с массивами данных первому элементу присваивает значение 0. Дни недели и месяцы года языком воспринимаются, как некий массив, следовательно, и значения дней и месяцев мы получаем в числовом виде. Т. е. перед нами стоит задача перевести программные значения на человеческий язык. При этом еще необходимо учесть, что первым днем недели язык определяет воскресенье (присваивая ему значение 0).

Для расшифровки записи "1 16 2 2009 года" используем условный оператор switch.

Начнем с дня недели.
Определим группу переменных, в которые поместим удобочитаемые названия дней недели:

dn1 = "Воскресенье";
dn2 = "Понедельник";
dn3 = "Вторник";
dn4 = "Среда";
dn5 = "Четверг";
dn6 = "Пятница";
dn7 = "Суббота";

и условным оператором создадим связь между получаемым числовым значением, текстовым блоком day_ned и словесным определением дня:

switch (dn) {
case (0) :day_ned.text = dn1;
break;
case (1) :day_ned.text = dn2;
break;
case (2) :day_ned.text = dn3;
break;
case (3) :day_ned.text = dn4;
break;
case (4) :day_ned.text = dn5;
break;
case (5) :day_ned.text = dn6;
break;
case (6) :day_ned.text = dn7;
break;
}

Нажмем CTRL+Enter, посмотрим, что получилось: "Здравствуйте! Сегодня — Понедельник 16 2 2009 года".

Теперь точно таким же способом обработаем числовые значения месяцев года. Сначала объявим переменные, в которые поместим названия месяцев (в родительном падеже):

m1 = "Января";
m2 = "Февраля";
m3 = "Марта";
m4 = "Апреля";
m5 = "Мая";
m6 = "Июня";
m7 = "Июля";
m8 = "Августа";
m9 = "Сентября";
m10 = "Октября";
m11 = "Ноября";
m12 = "Декабря";

И при помощи оператора switch свяжем числовые значения месяцев, текстовый блок mes и названия месяцев:

switch (m) {
case (0) :mes.text = m1;
break;
case (1) :mes.text = m2;
break;
case (2) :mes.text = m3;
break;
case (3) :mes.text = m4;
break;
case (4) :mes.text = m5;
break;
case (5) :mes.text = m6;
break;
case (6) :mes.text = m7;
break;
case (7) :mes.text = m8;
break;
case (8) :mes.text = m9;
break;
case (9) :mes.text = m10;
break;
case (10) :mes.text = m11;
break;
case (11) :mes.text = m12;
break;
}

Используя комбинацию CTRL+Enter, проверим, что у нас получилось:

Как сделать приветствие во Flash

Вот, собственно, и весь скрипт для приветствия.
Сохраним проект (клавиши CTRL+S) и опубликуем его, то есть скомпилируем и создадим файл с расширение .swf (клавиши SHIFT+F12).

Flash-приветствие готово.

Оцените статью
ЗнайКак.ру
Добавить комментарий