Опубликован: 04.11.2006 | Доступ: свободный | Студентов: 4623 / 582 | Оценка: 4.46 / 3.96 | Длительность: 39:17:00
Урок 3:

Адресация

< Урок 2 || Урок 3: 1234567 || Урок 4 >

Обращение к экземплярам фильмов-символов в уровнях

Обратиться к экземпляру фильма-символа, находящемуся в SWF-фильме, загруженном в уровень, проще простого: нужно просто указать номер уровня, в котором находится SWF, а затем имя нужного экземпляра. Например, путь (для фильмов из других уровней) к экземпляру под названием cuteDog внутри SWF, загруженного в Уровень 42, будет выглядеть так:

_level42.cuteDog

Если cuteDog сам содержит экземпляр фильма-символа с именем tail, путь к этому последнему будет таким:

_level42.cuteDog.tail

В обоих примерах использован абсолютный путь – ведь мы обращаемся к монтажным столам другого уровня; для обращения же к этим монтажным столам из того же уровня можно, как обычно, использовать относительные пути.

В этом упражнении мы продолжим работу над проектом нашей "операционной системы". Вы потренируетесь в обращении к экземплярам фильмов-символов, находящимся в SWF-фильмах, загруженных в уровни, а также узнаете, как использовать данные из одного уровня в фильме другого уровня.

  1. Откройте файл levelTarget2.fla из папки Lesson03/Completed.

Файл такой же, как тот, к которому мы добавили скрипты в предыдущем упражнении – с единственным исключением: здесь на монтажном столе имеется еще один слой, под названием Colors Clip.

  1. Щелкните на значке Показать слой (красный X) слоя Colors Clip, чтобы отобразить содержимое этого слоя.

Теперь вы видите лиловый прямоугольник, покрывающий всю сцену. Этот прямоугольник есть экземпляр фильма-символа с именем colors. Он будет работать как цветной фильтр, наложенный поверх разноцветного текстурного фона нашего "рабочего стола". При изменении цвета и прозрачности этого экземпляра будет казаться, что меняется этот фон. Мы напишем скрипт для фильма, загруженного в Уровень 1 (backgroundColor.swf) для управления цветом и прозрачностью этого экземпляра.

  1. Двойным щелчком на экземпляре фильма-символа colors откройте его для редактирования на месте.

Вы видите монтажный стол фильма-символа colors. Он состоит из единственного слоя, в котором имеется несколько кадров с метками. На каждой из этих меток прямоугольник на сцене окрашен цветом, соответствующим названию метки. Мы будем управлять цветом этого клипа, переходя к той или иной метке на его монтажном столе. Изначально клип лиловый – это цвет кадра 1, и в этом кадре содержится действие stop(), предотвращающее воспроизведение монтажного стола до получения особых инструкций.

  1. Вернитесь на основной монтажный стол. Откройте инспектор Параметры (Property), выделите текстовое поле в левой нижней части сцены, рядом с надписью "Enter text:".

Взгляните на инспектор Параметры. Как видите, это текстовое поле относится к типу Input text (поле для ввода), имя экземпляра – inputText. Сюда пользователь может ввести любой текст, и этот текст будет использован в фильме, загружаемом в Уровень 2 (textBox.swf). Сейчас мы создадим скрипт, обеспечивающий эту возможность.

  1. Откройте панель Действия, выделите на "рабочем столе" кнопку в виде бумажного свитка и добавьте новую строку скрипта – сразу после строки _level2._visible = true;:
_level2.inputText.text = _level0.inputText.text;

В фильме, загружаемом в уровень 2, тоже имеется текстовое поле, и тоже с именем inputText. При нажатии на эту кнопку добавленное нами действие поместит в текстовое поле фильма Уровня 2 тот же текст, который введен в текстовое поле этого фильма. Это – простейший пример обмена данными между монтажными столами.

  1. Выделите кадр 1 основного монтажного стола и добавьте новую строку скрипта – сразу после строки loadMovieNum ("textBox.swf", 2);:
_level0.colors._alpha = 50;

Данное действие устанавливает для экземпляра фильма-символа colors (который находится в слое Colors Clip ) 50-процентную прозрачность сразу после начала воспроизведения фильма. Мы указали здесь путь _level0, хотя это и не требовалось – просто чтобы освежить вашу память, лишний раз напомнив, что этот первый фильм будет автоматически загружаться в Уровень 0.

  1. Экспортируйте проект под именем levelTarget.swf в папку Lesson03/Assets.

В конце упражнения мы воспроизведем этот фильм.

  1. Сохраните файл как levelTarget3.fla.

Написание скриптов для этого файла завершено.

  1. Откройте файл backgroundControl2.fla из папки Lesson03/Assets.

Это тот же файл, который мы использовали в предыдущем упражнении – тот, что предназначен для загрузки в Уровень 1. В предыдущем упражнении мы запрограммировали его: сразу после загрузки он становится невидимым, "закрывается" при щелчке на кнопке "выход" (круглая, с крестом), его можно перетаскивать при нажатой невидимой кнопке, расположенной поверх "полосы заголовка". Теперь мы расширим функциональность этого "диалогового окна", дав ему возможность управлять экземпляром фильма-символа colors, находящегося в Уровне 0. Мы присоединим скрипты к этим многочисленным цветным квадратикам-кнопкам, которые вы видите.

Прежде чем начать программирование, давайте познакомимся поближе с элементами сцены. Слева, под надписью Transparency, вы видите динамическое текстовое поле, имеющее имя alphaAmount. Оно найдет у нас два применения: будет отображать текущее значение прозрачности экземпляра фильма-символа colors из Уровня 0, а также показывать, какому значению прозрачности соответствует каждая из кнопок, управляющих прозрачностью (при наведении указателя на эти кнопки). Эти пять кнопок – небольших, квадратных – расположены левее; мы запрограммируем их для изменения прозрачности экземпляра фильма-символа colors. Под этими кнопками имеется еще девять цветных квадратных кнопочек. Они будут изменять цвет экземпляра colors (перемещая его монтажный стол к той или иной метке). Ниже этих кнопок вы видите экземпляр фильма-символа currentColor, представляющий собой, по сути, уменьшенную версию фильма-символа colors. Этот экземпляр будет отображать текущий цвет, примененный к фону "рабочего стола". В самом низу имеется еще одно текстовое поле, оно называется colorName и будет отображать название цвета при наведении указателя на ту или иную цветовую кнопку.

  1. Из квадратных кнопок, расположенных возле текстового поля alphaAmount, выделите крайнюю слева, откройте панель Действия и введите следующий скрипт:
on (rollOver) {
  alphaAmount.text = 0;
}
on (release) {
  _level0.colors._alpha = 0;
}
on (release, rollOut) {
  alphaAmount.text = _level0.colors._alpha;
}

Эта кнопка будет устанавливать на 0 значение прозрачности экземпляра фильма-символа colors в Уровне 0.

Первое действие отображает 0 в текстовом поле alphaAmount при наведении указателя на кнопку – это подсказка пользователю. Следующее действие выполняется, если кнопка нажата и отпущена: свойству _alpha экземпляра фильма-символа colors присваивается нулевое значение, в результате он становится полностью прозрачным. Обратите внимание на адресацию: все просто – уровень, а за ним имя экземпляра. Следующее действие отображает в текстовом поле alphaAmount текущее значение прозрачности экземпляра фильма-символа colors; действие выполняется, если кнопка отпущена или с нее убран указатель.

Самостоятельно присоедините такой же скрипт к остальным кнопкам, управляющим прозрачностью, только вместо значения 0 подставьте, соответственно, 25, 50, 75 и 100.

  1. Выделите лиловую кнопку смены цвета (крайнюю слева) и поместите в панель Действия следующий скрипт:
on (rollOver) {
  colorName.text = "Purple";
}
on (release) {
  currentColor.gotoAndStop ("Purple");
  _level0.colors.gotoAndStop ("Purple");
}
on (release, rollOut) {
  colorName.text = "Выберите цвет";
}

Эта кнопка устанавливает цвет экземпляра фильма-символа colors в Уровне 0, перемещая его монтажный стол к кадру с нужной меткой.

Первое действие при наведении указателя на кнопку отображает в текстовом поле colorName слово "Purple" – это подсказка пользователю, какому цвету соответствует данная кнопка. По нажатию и отпусканию кнопки выполняются два действия. Первое из них отсылает экземпляр фильма-символа currentColor к кадру с меткой Purple. Тем самым изменится цвет прямоугольника, расположенного ниже кнопок смены цветов – он станет лиловым. Следующее действие отсылает к кадру с меткой Purple экземпляр фильма-символа colors в Уровне 0, приводя к тому, что фон Уровня 0 приобретает лиловый оттенок (его насыщенность будет зависеть от текущего значения прозрачности). Последнее действие выводит в текстовое поле colorName надпись "Выберите цвет".

Точно такой же скрипт присоедините к остальным кнопкам смены цвета, только замените "Purple" на одно из следующих значений (для кнопок слева направо): "Maroon", "Lavender", "SkyBlue", "DeepBlue", "Orange", "GrassGreen", "SeaGreen" и "Pink".

  1. Экспортируйте фильм как backgroundColor.swf в папке Lesson03/Assets.

Мы создали из нашего проекта SWF-фильм, предназначенный для загрузки в Уровень 1, перезаписав предыдущую версию файла, созданную в предыдущем упражнении.

  1. Сохраните свою работу как backgroundControl.swf.

Работу с этим файлом мы закончили.

  1. Найдите файл levelTarget.swf, который вы создали. Двойным щелчком откройте его.

Как только начнется воспроизведение файла, backgroundControl.swf будет загружен в Уровень 1, а textBox.swf – в Уровень 2; оба сразу же станут невидимыми. Экземпляр фильма-символа colors, который накладывается на текстурный фон, имеет лиловый оттенок при прозрачности 50 процентов.

Введите любой текст в текстовое поле внизу экрана, затем щелкните на "значке" в виде бумажного свитка. Эта кнопка делает видимым Уровень 2, и, как видите, введенный вами текст отобразился в текстовом поле фильма Уровня 2.

Теперь нажмите кнопку-значок в виде компьютерного монитора – станет видимым фильм в Уровне 1. Этот фильм управляет цветом и прозрачностью экземпляра фильма-символа colors в Уровне 0. Понажимайте кнопки изменения прозрачности и цвета, посмотрите, как изменяется этот экземпляр.

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

Предположим, имеется переменная с именем myVariable. Пусть эта переменная находится в экземпляре фильма-символа myMovieClip, который находится в фильме, загруженном в уровень 74. Тогда, чтобы воспользоваться этой переменной в скрипте на любом монтажном столе, достаточно указать правильный путь к ней:

_level27.displayText = _level74.myMovieClip.myVariable;

То же самое и для вызовов функций:

_root.anotherMovieClip.myFunction();

И для объектов любого типа:

_parent.myObject;

Конечно, прямо сейчас мы это не используем, но в последующих уроках эти сведения окажутся очень полезными.

< Урок 2 || Урок 3: 1234567 || Урок 4 >
Салтанат Бектегенова
Салтанат Бектегенова

Дострочное пересдача экзамена

 

Евгений Стародубцев
Евгений Стародубцев

Вот задание:

7. Открыв панель Действия (Actions) и установив ее в Экспертный режим(Expert Mode), выделите кадр 1 слоя Actions и введите следующий скрипт: