Тест разбит на три составные части.
1. Создание тестового флеш-ролика
2. Создание предзагрузчика
3. Создание HTML-файла запуска
Требуется создать флеш-ролик динамического меню.
Структура и название пунктов меню описывается строковой переменной strMenu, передаваемой флеш-ролику в качестве параметра.
Формирование меню происходит при старте флеш-ролика на основании данных, полученных в результате парсинга этой строки. Меню может содержать от 1 до 10 разделов, в каждом из которых может быть 0-10 подразделов.
Строковый параметр strMenu, описывающий конфигурацию меню, формируется по произвольным правилам (на усмотрение разработчика). Например, структура может иметь следующий вид:
strMenu=”MainItem 1,Item 1.1,Item 1.2,Item 1.3|MainItem 2,Item 2.1,Item 2.2|MainItem 3,Item 3.1,Item 3.2,Item 3.3,Item 3.4|MainItem 4,Item 4.1,Item 4.2,Item 4.3”
Ограничение по длине названия пункта меню - 12 символов.
Таким образом, для того чтобы получить нужную конфигурацию меню достаточно изменить параметр strMenu в .html-файле запуска флеш-ролика.
Меню имеет блочную структуру. Можно выделить два типа блоков
1. блок заголовка раздела;
2. блок подраздела.
В свернутом виде видны только блоки заголовков разделов.
При наведении мышки на блок заголовка, появляются блоки подразделов для этого пункта меню
При перемещении курсора мыши за пределы контура, охватывающего заголовочный блок и блоки подразделов, происходит сворачивание подразделов с задержкой в 0.5с. Поведение остальных разделов аналогичное.
Для обоих типов блоков должны быть реализованы следующие состояния:
1) Статическое состояние mouse over
При наведении на пункт меню курсора мыши, изменяется состояние мувиклипа блока. Аналог – подсвечивание пункта меню. Конкретное поведение на усмотрение разработчика.
2) Динамическое состояние press
При нажатии на пункт меню выполняется зацикленная анимация, привязанная к мувиклипу блока (может быть реализована внутри мувиклипа блока). Аналог – мигание пункта меню. Конкретное поведение - на усмотрение разработчика.
3) Динамическое состояние release
При отпускании кнопки мыши, после нажатия на пункт меню, где-нибудь в свободной от меню области крупным шрифтом выводится название этого пункта меню. Текст названия должен в точности совпадать с текстом, заданным для этого пункта меню в параметре strMenu при вызове флеш-ролика.
После этого закрывается вся ветвь меню, в пределах которой находится этот блок. Т.е. убираются блоки подразделов и меню возвращается в исходное состояние. Выведенный текст должен остаться на сцене.
При этом внешний вид блоков заголовков должен визуально отличаться от блоков вложенных разделов.
Кроме того, в дополнение к вышеописанному поведению, для блоков заголовков есть отличие в поведении в состоянии mouse over - при наведении на пункт меню курсора мыши, появляются подразделы этого пункта меню.
Все пункты меню формируются при старте флеш-ролика путем дублицирования единственного мувиклипа, представляющего из себя один пункт меню, и содержащего все необходимые модели поведения для обоих типов блоков (могут быть реализованы в виде вложенных мувиклипов). Имя мувиклипа выбирается разработчиком.
Этот мувиклип сохраняется в виде отдельного файла с именем "имя".swf в той же директории, где находится основной файл флеш-ролика.
Основной файл флеш-ролика должен использовать этот мувиклип, подгружая его из файла "имя".swf во время исполнения.
Такое построение позволяет заменой только файла "имя".swf изменить внешний вид и поведение меню.
Основной флеш-ролик должен быть снабжен предзагрузчиком, отображающим процесс загрузки элементов мувиклипа в виде выполнения какого-либо процесса и показа процентного соотношения загруженных данных в текстовом виде.
Флеш-ролик динамического меню должен запускаться стартом HTML-файла.
При этом область, занимаемая флеш-роликом должна ограничиваться только размерами окна браузера. При увеличении размеров окна ролик должен пропорционально увеличиваться (без искажения соотношения сторон).
В этом же HTML-файле флеш-ролику передается строковый параметр strMenu, описывающий конфигурацию меню. По умолчанию в нем должна быть описана структура меню.
Есть файл с анимацией персонажа. Для каждой анимации прописаны метки(label) на таймлайне.
Список анимаций:
Стойка на месте(idle) – стоит на месте и двигается
Ходьба(walk) – перемещение
Атака(attack) – атака
Получение удара(wound) – получает удар
Блокировка(block) – блокирует удар
Смерть(die) – умирает
Нужно сделать обертку для показа этих анимаций в виде одного или нескольких классов. Запуск каждой анимации должен быть выведен в отдельный метод управляющего класса.
Пример:
public class Character {
public function idle():void {
}
public function walk():void {
}
....
}
Анимация по умолчанию idle. При окончании других анимаций состояние персонажа переходит в idle. После проигрывания анимации смерти(die) анимация останавливается на последнем кадре.
Интерфейс представляет собой кнопки со всеми анимациями. Кнопка активной анимации должна быть как-то выделена.