Иллюстрированный самоучитель по Flash-games


Подход


Создание подобного ролика, содержащего 10 различных кнопок, с 10 различными кодами, предназначенными для воспроизведения 10 различных песен, является интересной задачей. Ролик будет работать, однако его сложно создать и еше сложнее изменить.
Наиболее простым способом будет создать одну кнопку и использовать ее 10 раз, один раз для каждой песни. Каждая кнопка будет представлять собой клип, содержащий одну и ту же кнопку. Таким образом, в библиотеке ролика окажется всего один клип и одна кнопка. Этот клип будет помешен на рабочее поле 10 раз, все его копии будут идентичны. Первое действие при запуске ролика - изменение текста каждой копии клипа. Это действие описывается при помощи следующего кода:

// Задаем названия песен.

this["1"].text = "Song Name 1";

this["2"].text = "Song Name 2";

this["3"].text = "Song Name 3";

this["4"].text = "Song Name 4";

this["5"].text = "Song Name 5";

this["6"].text = "Song Name 6";

this["7"].text = "Song Name 7";

this["8"].text = "Song Name 8";

this["9"].text = "Song Name 9";

this["10"].text = "Song Name 10";

Для того чтобы упростить задачу, клипам присвоены имена от " 1" до "10". В результате выполнения вышеприведенного кода все копии клипа будут отображать разные названия песен. Поэтому, несмотря на то, что в библиотеке содержится один клип, все его копии будут выглядеть по-разному.
Более того, названия всех 10 песен будут включены в один сценарий Если бы каждый клип содержал, название одной песни, вам пришлось бы проделать немало работы, открывая и закрывая каждый из 10 клипов для внесения в него изменений. Данный сценарий дает возможность быстро изменить все названия песен.
Свести количество клипов к одному помогает и код, назначенный кнопке внутри клипа:

on (release) {

_root.playSong (this._name);

}

Эта строка кода отправляет одно из имен клипа от "1" до "10" в функцию playSong, находящуюся на корневом уровне (уровне рабочего поля). Эта часть кода может выполняться в любом клипе, так как в каждом случае использует различное имя экземпляра клипа. Если при создании нового экземпляра клипа вы не забыли назначить ему новое имя, значение переменной this._name будет каждый раз иным.
Данный код позволяет использовать одну копию клипа необходимое число раз. В случае внесения в клип каких-либо графических или функциональных изменений вам придется сделать это всего единожды. Кроме того, конечный .swf-файл будет меньше файла, библиотека которого содержит 10 копий аналогичных клипов.




Начало  Назад  Вперед