Чтение онлайн

ЖАНРЫ

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Розенцвейг Гэри

Шрифт:

Для того чтобы завершить создание панели с кнопками, необходимо скопировать клип несколько раз. Внутри каждого клипа измените сценарий on (release), чтобы он выполнял какое-нибудь другое действие, например переход к другой странице. Следует также изменить текст в клипе, чтобы кнопки выглядели так, как это изображено на рис. 5.1.

Все клипы содержат копию одного и того же сценария ActionScript. Это плохо, поскольку любое изменение сценария повлечет за собой необходимость внесения таких же изменений в сценарии всех остальных кнопок. В результате в библиотеке окажется столько же клипов, сколько и кнопок, однако на самом деле вам необходима всего одна. Каждой кнопке каждого клипа будет назначен свой сценарий, в то время как каждый клип на главной временной шкале будет

содержать копию одного и того же сценария.

...

Совет

Вместо того чтобы копировать, а затем вставлять один и тот же сценарий во все кнопки, вы можете использовать команду #include, которая позволяет при компиляции кода считывать сценарий из внешних файлов. При изменении сценария внешнего файла все кнопки соответственно изменят свой сценарий. Тем не менее, вам все же придется скопировать и вставить команду #include в каждую копию клипа.

Все это можно увидеть, загрузив файл Expandingbuttons.fla.

Другие возможности

Значения параметров _xscale и _yscale не обязательно должны быть равны. Вы можете изменить только один из них, чтобы получить другой эффект. Вы также не обязаны придерживаться приводимых в книге значений. Кнопка может увеличиваться до большего или меньшего размера. Немного изменив код, вы можете заставить кнопки пульсировать. Для этого необходимо задать возвращение значения переменной newscale к 100 сразу после того, как кнопка достигнет максимального размера. В результате при наведении курсора кнопка будет мгновенно увеличиваться и сразу же уменьшаться.

Вращающаяся и изменяющая цвета спираль

Исходные файлы: Colorchange.fla, Colortransform.fla, Gradualchange.fla, Spiral.fla

При помощи ActionScript можно менять не только масштаб клипа, но и почти любой другой его параметр. Изменение масштаба является довольно простым примером. Изменить цвет клипа немного сложнее. В данном разделе вы научитесь изменять цвет клипа и поворачивать его.

Задача проекта

Задача этого проекта – создать ролик, который будет изображать вращающуюся спираль с постепенно меняющимися цветами. При этом вы изучите, как функционируют объект Color и свойство клипа _rotation.

Подход

С помощью ActionScript можно изменить большинство свойств клипов, которые находятся на рабочем поле. В некоторых случаях свойство можно изменить напрямую, в других случаях, например при смене цветов, необходимо использовать функции.

Объект Color

Объект Color предназначен для изменения цветов клипа. Его можно представить как набор функций, позволяющих узнавать и управлять цветами клипа.

Сначала надо создать объект Color, связанный с клипом, который вы собираетесь изменять. Это можно сделать следующим образом:

myColorObject = new Color(«myMovieClipName»);

...

Совет

Объекты наподобие Color построены по образу телевизионного пульта управления. Клип можно представить как телевизор, а объект Color как особый пульт управления, предназначенный для настройки цветовых параметров изображения. Методы объекта Color используются аналогично кнопкам пульта управления.

Существует два способа определения и изменения цветового объекта. Первый – это непосредственно определить цвет при помощи двух строк кода. Сначала создайте новый flash-ролик и поместите на рабочее поле один клип. Назовите копию клипа «myMovieClip». Затем поместите следующий сценарий в главную временную шкалу:

myColorObject = new Color(«myMovieClip»); trace(myColorObject.getRGB).toString);

...

Внимание!

Не забудьте о том, что существует различие между именем эталона клипа в библиотеке и именем конкретного экземпляра клипа на рабочем

поле. ActionScript всегда ссылается на имя экземпляра клипа. Имя в библиотеке предназначено исключительно для организационных целей.

Во время тестирования ролика автоматически откроется окно Output, в котором будет содержаться значение "0". Это результат выполнения команды trace.

...

Примечание

Функция toString преобразует многие типы ActionScript, например числовые в строку текста. Она, например, удобна для преобразования цветов в числовые значения для вывода при помощи команды trace.

Более интересный результат можно получить, изменяя цвет ролика. Чтобы это сделать, выделите клип и на панели Properties выберите в выпадающем меню Color пункт Advanced, после чего нажмите кнопку Settings. В появившемся окне Advanced Effect введите значение 128 в поля R,G и B. Введите значение 128 в поля R, G и B (рис. 5.3) в правой колонке. В левой колонке выставьте значение 0.

Рисунок 5.3. Панель Advanced Effect предназначена для изменения цвета клипа

Теперь при тестировании ролика в итоговое окно будет помешено значение 8421504, что соответствует значениям 128 полей R, G и B. Немного изменив функцию toString, вы вместо десятичного значения получите шестнадцатеричное. Оно будет выглядеть как значение RGB, используемое дизайнерами для задания цветов.

myColorObject = new Color(«myMovieClip»); trace((myColorObject.getRGB).toString(16));

...

Примечание

Описание new позволяет создавать новые копии объектов наподобие объекта Color. Оно также используется для создания новых массивов и ваших собственных объектных конструкций. Если на данном этапе оно не понятно, не беспокойтесь. Для того чтобы использовать описание new, полное понимание не требуется.

Результатом в данном случае является значение 808080, шестнадцатеричное число, представляюшее собой средний серый цвет (красная, зеленая и синяя составляюшие, которые имеют значение 128, среднее между 0 и 255). Значение 16 в качестве параметра функции toString задает преобразование числовых значений в шестнадцатеричные.

Теперь, когда вы умеете получать RGB-значение цвета клипа, следующим шагом будет его изменение. Это можно сделать при помоши функции setRGB. Она имеет только один параметр: шестнадцатеричное значение, которое вы хотите использовать. Приведем пример с тем же роликом, но с несколько измененным кодом:

myColorObject = new Color(«myMovieClip»); myColorObject.setRGB(0xFF0000);

Сочетание 0x указывает, что за ним следует шестнадцатеричное число. Приведенное в коде число FF0000 соответствует красному цвету. При запуске цвет ролика изменится на красный независимо от исходного. Действие этих двух строк кода продемонстрировано в примере Colorchange.fla, который вы найдете на Web-сайте. Трансформация цветов

Более универсальным способом изменения цвета является использование метода setTransform объекта Color. Аргументом метода setTransform является объект, содержаший восемь параметров цвета. Параметры ra, ga и ba задают относительное смешение в процентах (от -100 % до 100 %) для красной, зеленой и синей составляюших цвета соответственно. Параметры rb, gb и bb задают абсолютное (от -255 до 255) значение цветов. Последние два параметра – aa и ab определяют значение свойства _alpha (прозрачность) клипа.

На рис. 5.3 изображены все шесть составляюших, плюс два значения, преобразуюших альфа-канал (прозрачность изображения).

Объект преобразования цвета может содержать различные значения каждой из восьми составляюших. Эти значения задаются путем создания новой переменной-объекта. Приведем пример:

Поделиться с друзьями: