рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Создание экземпляров клипов динамически

Создание экземпляров клипов динамически - Лекция, раздел Менеджмент, Динамическое управление фильмами-символами Для Динамического Создания Экземпляра Фильма-Символа Предназначены Три Метода...

Для динамического создания экземпляра фильма-символа предназначены три метода объекта MovieClip:

  • duplicateMovieClip(): C помощью этого метода можно создать дубликат (новый экземпляр) существующего на сцене экземпляра фильма-символа.
  • attachMovie(): Этот метод создает на сцене новый экземпляр фильма-символа, имеющегося в библиотеке.
  • createEmptyMovieClip(): Этот метод создает пустой экземпляр фильма-символа – то есть не содержащий ни данных, ни графических материалов.

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

duplicateMovieClip()

Мы уже познакомились с этим методом на лекции – Автоматизация скриптов с помощью циклов, однако сделали это бегло, не вдаваясь в детали.

Метод duplicateMovieClip() служит для Flash указанием создать дубликат имеющегося на сцене экземпляра фильма-символа, дав ему новое имя. Если указанный экземпляр клипа на сцене не присутствует (находится в одном из предыдущих или последующих кадров), то Flash не сможет дублировать его. Другое ограничение состоит в том, что дубликат может быть создан только на том же самом монтажном столе, где находится оригинал. Для динамического создания экземпляра клипа на любом монтажном столе следует применять метод attachMovie() – мы еще поговорим о нем.

Создаваемый дубликат наследует все физические свойства, которые имел оригинал на момент дублирования.

Дубликат фильма-символа наследует следующие свойства оригинала:

  • Позиция
  • Масштаб
  • Прозрачность
  • Угол поворота
  • Цвет
  • Обработчики событий, присоединенные к экземпляру клипа

Дубликат фильма-символа не наследует:

  • Переменные, массивы, объекты
  • Имя
  • "Видимость"
  • Номер текущего кадра

 

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

Синтаксис дублирования экземпляра фильма-символа таков:

myClip.duplicateMovieClip(имя, глубина, объект);

Эта строка ActionScript начинается с указания имени (с адресацией) фильма-символа, который следует дублировать, после чего следует вызов метода duplicateMovieClip() объекта MovieClip. В результате создается новый экземпляр, именем которого будет значение параметра имя, на глубине глубина. Параметр объект – не обязательный. Пример:

name = "ball2";depth = 100;ball.duplicateMovieClip(name, depth);

Эти три строки создают дубликат экземпляра клипа ball; экземпляр-дубликат получает имя ball2 и располагается на глубине 100.

Примечание Говоря здесь о глубине (depth), мы подразумеваем порядок наложения экземпляров клипов на монтажном столе. Во Flash, если два экземпляра клипов перекрываются, верхним будет тот, который имеет большее значение глубины. Каждый экземпляр фильма-символа имеет уникальное значение глубины, определяющее его положение по отношению к другим объектам на сцене. При дублировании новому экземпляру клипа присваивается значение глубины – любое положительное число. Чем больше это число, тем выше "над сценой" будет расположен экземпляр. Вы, возможно, даже не подозревали, что все экземпляры фильмов-символов, которые вы помещаете на монтажный стол в процессе разработки проекта, тоже автоматически получают глубину, при этом значения глубин начинаются с отрицательного числа -16384. Это означает, что динамически созданный экземпляр, помещенный на глубину 1, перекроет все, что было помещено на сцену вручную.

Каждый монтажный стол в фильме имеет диапазон глубин от -16384 до 1048575, причем все отсчеты глубин ведутся относительно главного монтажного стола фильма. Иными словами, некий "экземпляр 1" может содержать дочерние экземпляры, расположенные на его монтажном столе на глубинах от -16384 до 1048575. Но если на основном монтажном столе "экземпляр 1" находится под "экземпляром 2", то всякий, даже самый верхний дочерний экземпляр "экземпляра 1" окажется ниже самого нижнего из дочерних экземпляров "экземпляра 2".

 

На каждой глубине в каждый момент времени может располагаться только один экземпляр фильма-символа. Попытавшись дублировать экземпляр клипа на глубину, где уже имеется другой экземпляр, вы тем самым уничтожите этот второй экземпляр.

Итак, каждый монтажный стол имеет 1064960 уровней глубины (от -16384 до 1048575). При этом глубины разных монтажных столов никоим образом не пересекаются между собой.

Третий параметр метода duplicateMovieClip(), параметр объект, необязателен, но отнюдь не бесполезен. Свойства объекта, указанного в качестве этого параметра, станут элементами данных нового дубликата клипа. Если параметр опущен, он игнорируется. Расширим немного предыдущий пример:

myObject = new Object();myObject.ballColor = "red";name = "ball2";depth = 100;ball.duplicateMovieClip(name, depth, myObject);

Новый экземпляр-дубликат ball2 будет содержать все свойства объекта myObject. В данном случае в новом экземпляре будет создана переменная ballColor со значением "red".

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

ball.duplicateMovieClip(name, depth, ball);

attachMovie()

C помощью метода attachMovie() можно взять фильм-символ из библиотеки и динамически "присоединить" (attach) экземпляр его к любому монтажному столу из имеющихся в данный момент в сцене фильма – при этом, естественно, все содержимое этого экземпляра добавится к содержимому фильма, к которому он присоединяется. Присоединенный клип становится дочерним по отношению к монтажному столу, к которому он присоединен. Он наследует все графические трансформации, выполняемые над родителем (изменения размеров, прозрачности, повороты и т.п.), при этом сохраняя самостоятельность в отношении данных, видимости, текущего кадра и т.п.

 

В чем же состоят отличия этого метода от метода duplicateMovieClip()? Как уже было сказано, attachMovie() присоединяет экземпляр клипа из библиотеки к любому из монтажных столов в фильме. Поскольку присоединяемый клип берется из библиотеки (а библиотека содержит все клипы фильма), клип, к которому присоединяется экземпляр, не обязан находиться на сцене в момент присоединения. С методом duplicateMovieClip() все наоборот: экземпляр клипа, который подлежит дублированию, должен находиться на сцене. Более того, дубликат создается только на том же монтажном столе, что и оригинал. Еще одно различие состоит в следующем. Если дублируемый экземпляр имеет присоединенные к нему обработчики событий (data, enterFrame, mouseDown и т.п.), то дубликат автоматически наследует их. С присоединяемым клипом такого не происходит. Конечно, имеются способы добавить обработчики событий и к присоединяемому клипу, но этот процесс не столь прост, как при дублировании.

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

 

– Конец работы –

Эта тема принадлежит разделу:

Динамическое управление фильмами-символами

Что будет изучаться... В этой лекции Построение прокручиваемого списка Дублирование и... Приложение для рисования один из проектов которые мы создадим в этом уроке в ходе изучения различных способов динамического управления...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Создание экземпляров клипов динамически

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

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

Динамическое рисование при помощи ActionScript
Посредством ActionScript можно организовать рисование динамически, в ходе воспроизведения фильма. Такая возможность обеспечивается методами объекта MovieClip, предназначенными для рисования.

Применение методов рисования
В этом упражнении мы с вами, используя методы рисования объекта MovieClip, мы начнем создавать несложное приложение, позволяющее пользователю рисовать. Откройте файл draw1.fl

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

Set_video_reclama(); Z-сортировка экземпляров клипа
Изменение глубины расположения экземпляров фильмов-символов называют z-сортировкой. Почему z? Да потому, что глубину во Flash можно рассматривать, как третье измерение, Z-координату (вдобавок к X и

Перетаскивание экземпляров клипа
Зачастую при создании пользовательского интерфейса возникает необходимость реализовать для экземпляров клипов операцию типа "перетащить и оставить" (drag-and-drop). Этим термином обознача

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги