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

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

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

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

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

Что будет изучаться

В этой лекции:

  • Построение прокручиваемого списка
  • Дублирование и присоединение экземпляров клипов
  • Создание кнопок с непрерывной обратной связью для перемещения экземпляра клипа
  • Создание пустых экземпляров клипов динамически
  • Рисование линий и закраска фигур динамически
  • Динамическое изменение порядка наложения экземпляров клипов
  • Программирование перетаскивания мышью
  • Удаление экземпляров клипов динамически

 

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

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

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

Применение метода attachMovie() требует выполнения некоторых условий. Первое условие состоит в том, что находящиеся в библиотеке клипы, предназначенные для присоединения, следует должным образом подготовить. Такая подготовка называется связыванием. Возможно, связывание – не лучший термин для обозначения процесса идентификации клипов библиотеки с возможностью присоединения. Но дело в том, что этот термин (и этот процесс) имеет также отношение к совместному использованию библиотек – когда элементы библиотеки одного SWF-файла могут быть связаны с другим SWF-файлом (то есть станут общими). Чтобы указать фильмы-символы, доступные для присоединения (а также и для совместного использования двумя SWF-файлами), им следует присвоить имена – идентификаторы. Всякий процесс, включающий присвоение идентификаторов фильмам-символам в библиотеке Macromedia рассматривает как связывание.

Пошаговый процесс связывания фильма-символа выглядит так:

  1. Откройте библиотеку.
  2. Щелкните правой кнопкой мыши на интересующем вас клипе.
  3. Выберите в контекстном меню пункт Связи (Linkage).
  4. Установите флажок Экспорт для ActionScript (Export for ActionScript).
  5. Введите имя в поле Название (Identifier) (этот идентификатор будет служить в ActionScript) ссылкой на клип, находящийся в библиотеке).

Совет Установить связь можно также при создании фильма-символа, нажав в диалоговом окне Преобразовать в символ (Convert to Symbol) кнопку Расширенный (Advanced).

 

Примечание При связывании обратите внимание еще на одну опцию – "Экспорт в первый кадр" (Export in first frame), которая включается по умолчанию. Эта опция определяет, в какой момент будет загружаться связанный (или присоединяемый) фильм-символ при просмотре фильма. Если флажок установлен, то клип будет загружен до кадра 1 основного фильма, и, таким образом, его содержимое будет доступно прежде, чем будет предпринята любая попытка присоединить его (например, уже в кадре 1). При использовании крупных клипов (таких, которые содержат много других фильмов-символов или звукозаписей) Flash может в начале фильма "затормозить". Не стоит беспокоиться: просто происходит загрузка содержимого всех связанных фильмов-символов. Если флажок "Экспорт в первый кадр" не установлен, то фильм-символ не будет загружаться перед первым кадрам. В этом случае вы должны поместить экземпляр такого клипа на сцену до того, как попытаетесь присоединить его. После того, как фильм-символ будет обработан (появится в фильме) в каком-либо кадре, его можно будет присоединять когда и где угодно. Например, если в кадре 25 имеется действие, присоединяющее клип, то экземпляр этого клипа должен появиться в фильме в кадре 24 или раньше – иначе метод attachMovie() не сработает. После кадра 24 присоединять экземпляры этого клипа можно сколько угодно, поскольку он уже загружен в память.

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

путь.attachMovie(идентификатор, новоеИмя, глубина, объект);Например:_root.wall.attachMovie("paint", "paint2", 10);

Этот скрипт присоединит фильм-символ из библиотеки, имеющий идентификатор "paint", к экземпляру фильма-символа _root.wall. Новый присоединенный экземпляр получит имя paint2 и будет помещен на глубину 10. Присоединенный клип станет дочерним для того экземпляра, к которому он присоединен, так что путь к нему будет выглядеть как _root.wall.paint2. Обратите внимание на пример синтаксиса (первая строка): здесь тоже имеется опция, позволяющая наполнить создаваемый клип свойствами и переменными объекта. Как и для duplicateMovieClip(), эта опция необязательна и в нашем примере (вторая строка) опущена.

Совет Простейший способ динамически назначить события клипа присоединенному (или дублированному) клипу – описать обработчики событий сразу после действия, выполняющего присоединение (дублирование), как в этом примере:

_root.attachMovie("box", "dynamicBox", 1);dynamicBox.onEnterFrame = function(){ dynamicBox._rotation += 15;}

В этом примере экземпляр фильма-символа box (это его имя в библиотеке) динамически присоединяется к основному монтажному столу. Присоединенный экземпляр получает имя dynamicBox. Строки, следующие за действием присоединения, назначают обработчик события клипа для нового экземпляра.

createEmptyMovieClip()

Метод createEmptyMovieClip() позволяет динамически создать (на любом монтажном столе) новый экземпляр пустого фильма-символа. Для чего это может понадобиться? Вот несколько примеров.

  • К пустому клипу, созданному с помощью этого метода, можно присоединять экземпляры других клипов – например, для динамического генерирования списков и меню. Если элементы меню присоединены к такому "базовому" клипу, можно перемещать все меню целиком, вместо того, чтобы двигать каждый элемент по отдельности.
  • Создав пустой клип, можно затем загрузить в него звукозапись или картинку.
  • Пустые экземпляры клипов могут служить отличными хранилищами для линий, обычных и градиентных заливок, созданных с помощью изобразительных функций Flash.

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

путь.createEmptyMovieClip(имя, глубина);

Например:

_root.createEmptyMovieClip("box", 1);

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

Применение attachmovie()

Метод attachMovie() создает новый экземпляр фильма-символа из библиотеки. В этом упражнении мы с вами создадим проект, при запуске которого на сцене будет отображаться прокручиваемый список. Элементы этого списка будут создаваться посредством динамического присоединения экземпляров клипа.

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

На основном монтажном столе мы видим три слоя: Actions, Window и Background. Слой Background содержит общее графическое оформление проекта; в слой Actions мы поместим большинство скриптов; а в слое Window находится экземпляр фильма-символа под названием display.

Внутри монтажного стола display вы найдете четыре слоя: Mask, Fields, Scroll Buttons и Window Graphics. В слое Window Graphics содержатся рамка и фон окна, слой Scroll Buttons содержит экземпляр фильма-символа, в котором находятся кнопки прокрутки окна вверх и вниз (ими мы займемся в следующем упражнении), а в слое Fields находится пустой экземпляр клипа под названием list, к которому мы будем присоединять экземпляры, создавая их при помощи attachMovie(). Эти присоединенные экземпляры станут элементами списка, располагаясь один под другим. Список (экземпляр клипа list), будучи наполнен присоединенными к нему экземплярами, станет довольно-таки длинным. Поэтому мы маскируем list прямоугольником, находящимся в слое Mask, так что видимой будет только часть клипа list, находящаяся "внутри" окна.

 

  1. Откройте библиотеку и найдите в ней фильм-символ под названием list info bar. Щелкните на нем правой кнопкой мыши (или Control-щелчок на Macintosh) и выберите в появившемся меню пункт Связи (Linkage). В открывшемся диалоговом окне Свойства связи (Linkage Properties) установите флажок Экспорт для ActionScript (Export for ActionScript) и введите infoBar в поле Название (Identifier).

Теперь этот клип готов к использованию методом attachMovie().

Для каждой строки в прокручиваемом списке к экземпляру list будет присоединяться один экземпляр клипа infoBar (16 строк, 16 присоединений). Внутри каждого из присоединенных клипов будет два динамических текстовых поля – moonName и moonNum; в этих полях будут отображаться названия лун Юпитера и соответствующие номера.

 

  1. Выделите кадр 1 слоя Actions на основном монтажном столе. Откройте панель Действия и введите следующий скрипт:
list = ["Adrastea", "Amalthea", "Ananke", "Callisto", "Carme", "Elara", "Europa", "Ganymede", "Himalia", "Io", "Leda", "Lysithea", "Metis", "Pasiphae", "Sinope", "Thebe"];

Цель этого упражнения – создать список, элементами которого будут присоединенные экземпляры фильма-символа. Для этого мы прежде всего создаем массив из названий 16 наиболее известных лун Юпитера. Для каждой луны из этого массива к экземпляру list мы должны присоединить экземпляр клипа из библиотеки.

Теперь нужно описать функцию, которая и будет создавать список из экземпляров клипа.

  1. По-прежнему при выделенном кадре 1 добавьте к скрипту следующее:
function buildList() { spacing = 30;}

В конечном итоге функция buildList() будет содержать все действия, необходимые для присоединения, позиционирования и заполнения информацией элементов списка – экземпляров клипа. Для правильного и равномерного размещения элементов списка по вертикали мы создаем переменную spacing и присваиваем ей значение 30 – эта переменная будет определять дистанцию по вертикали (y) между центрами присоединенных экземпляров клипа.

  1. Добавьте в описание функции следующие действия, присоединяющие и позиционирующие элементы списка:
var i = -1;while (++i < list.length) { name = "infoBar" + i; y = i * spacing; display.list.attachMovie("infoBar", name, i); display.list[name]._y = y; display.list[name].moonName.text = list[i]; display.list[name].moonNum.text = i + 1;}

В этой части функции используется цикл while, перебирающий поочередно все элементы массива list. Для каждого элемента массива цикл присоединяет к экземпляру list экземпляр клипа infoBar.

Первым действием в теле цикла создается переменная name, значение которой задается выражением, которое присоединяет к строке "infoBar" текущее значение i. Поскольку значение i при каждом проходе цикла увеличивается на единицу, name будет принимать значения "infoBar0", "infoBar1", "infoBar2" и так далее. Далее в теле цикла значение name будет использовано для присвоения имени каждому успешно присоединенному экземпляру клипа infoBar. А пока в цикле создается переменная y, которая будет хранить y-координату присоединяемого в данный момент экземпляра. Значение этой переменной вычисляется умножением текущего значения i на значение spacing. Поскольку значение i при каждой итерации увеличивается, то же будет происходить и со значением y. В результате присоединенные экземпляры будут располагаться друг под другом.

Последние четыре действия в теле цикла присоединяют экземпляры, позиционируют их и заполняют информацией динамические поля в каждом присоединенном экземпляре. Первым делом создается (присоединяется) новый экземпляр клипа infoBar, имя и глубина которого содержатся в переменных name и i, соответственно. Далее этот присоединенный экземпляр получает y-координату, равную значению переменной y. Каждый из присоединяемых экземпляров содержит те же элементы, что и оригинал, а значит, в каждом имеется два текстовых поля: moonName и moonNum. Последние два действия в теле цикла заполняют эти поля соответствующей информацией. Во первых, в поле moonName присоединенного экземпляра помещается строковое значение (название луны) – i-й элемент массива list. В текстовое поле moonNum каждого экземпляра помещается числовое значение i плюс 1. Таким образом, в этом текстовом поле для соответствующих экземпляров будут выводиться значения 1, 2, 3 и так далее.

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

 

  1. В самый конец текущего скрипта в кадре 1 (после описания функции) добавьте вызов функции – действие buildList();.

 

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

  1. Командой Управление > Проверить фильм (Control > Test Movie) запустите тест только что созданного проекта.

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

  1. Закройте тестовый фильм и сохраните свою работу как scrollingList2.fla.

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

Построение кнопок с непрерывной обратной связью

Примечание В большинстве случаев реализовать прокрутку гораздо проще с помощью компонента Scrollbar (полоса прокрутки). Это упражнение имеет целью… Если информации в окне при каждом нажатии на соответствующую кнопку будет… В этом упражнении мы с вами добавим кнопки прокрутки к списку, построенному нами в предыдущем упражнении. …

Динамическое рисование при помощи ActionScript

Методы рисования позволяют: Провести линию от текущего "курсора рисования" к указанной точке Переместить "курсор … В этом разделе вы научитесь рисовать линии, перемещать "курсор… lineStyle()

Применение методов рисования

Основной монтажный стол состоит из пяти слоев, названных в соответствии с их содержимым. Слой Background содержит общее графическое оформление…  

Создание закрашенных фигур динамически

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

Set_video_reclama(); Z-сортировка экземпляров клипа

Для взаимного обмена глубинами двух экземпляров клипов используется следующий синтаксис: movieClip1.swapDepths(movieClip2); Если, например, movieClip2 располагался поверх movieClip1, то в результате… Синтаксис перемещения экземпляра клипа (созданного до этого при помощи duplicateMovieClip() или attachMovie()) на…

Перетаскивание экземпляров клипа

Обычно во Flash операция "перетащить и оставить" реализуется при помощи _droptarget или hitTest(). Значение свойства фильма _droptarget –… В этом упражнении мы добавим в наш проект динамически формируемую строку… В таком виде мы с вами оставили этот файл после выполнения предыдущего упражнения. Сейчас мы будем добавлять скрипты к…

Удаление динамически созданного содержания

Динамически созданные линии можно легко удалить с любого монтажного стола при помощи метода clear(). Синтаксис прост:

путь.clear();

Экземпляры клипов, созданные при помощи duplicateMovieClip() или attachMovie() (как значки, которые мы перетаскивали в область рисования), можно удалить при помощи метода объекта MovieClip removeMovieClip().

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

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

someMovieClip.removeMovieClip();

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

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

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

  1. Откройте панель Действия, выделите экземпляр клипа controller и добавьте в обработчик события load следующую функцию:
function clearContent () { _root.holder.clear(); i = 0; while (++i <= v) { name = "object" + i; _root[name].removeMovieClip(); } v = 0;}

Первое действие в этой функции удаляет все динамически нарисованные линии из экземпляра клипа holder. Далее следует несложный цикл while, удаляющий все перетащенные на сцену экземпляры клипа icon. Значение переменной v равно общему числу перетащенных экземпляров icon, ведь v увеличивается на единицу всякий раз, когда в области рисования создается дубликат icon – мы с вами запрограммировали это в функции buildIconList(), в предыдущем упражнении. Теперь мы используем значение v для определения количества итераций цикла, удаляющего дубликаты. После того, как цикл завершен (все экземпляры icon из области рисования удалены), переменной v присваивается значение 0, так что когда в область рисования будет перетащен новый экземпляр icon, нумерация дубликатов вновь начнется с нуля.

 

  1. Двойным щелчком на экземпляре window2 откройте его для редактирования на месте. Перейдите к кадру с меткой admin.

В этом кадре имеется две кнопки – Clear и Print. Нам нужно присоединить к кнопке Clear скрипт, вызывающий функцию clearContent() из экземпляра клипа controller. Заодно уж давайте добавим скрипт к кнопке Print.

  1. Выделите кнопку Print и присоедините к ней такой скрипт:
on (release) { printAsBitmap ("_root", "bmovie");}

Если эту кнопку нажать и отпустить, графическое содержимое главного монтажного стола (то есть, все, что в момент нажатия кнопки находится на сцене, включая динамически созданные экземпляры) будет распечатано как растровое изображение в натуральную величину.

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

  1. Выделите кнопку Clear и введите такой скрипт:
on (release) { _parent.controller.clearContent();}

Если эту кнопку нажать и отпустить, будет выполнена функция clearContent(), присоединенная к экземпляру controller.

  1. Командой Управление > Проверить фильм (Control > Test Movie) запустите тест фильма. Изобразите что-нибудь в области рисования, затем нажмите кнопку Clear.

При нажатии кнопки Clear будет выполнена функция очистки, цикл while в ней удалит все созданные в области рисования экземпляры клипов.

  1. Закройте тестовый фильм и сохраните свою работу как draw5.fla.

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

set_video_reclama();

 

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

Используемые теги: Динамическое, управление, фильмами-символами0.059

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

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

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

Еще рефераты, курсовые, дипломные работы на эту тему:

Понятие управления. Виды управления. Управленческий труд и его особенности. МОДЕЛИ УПРАВЛЕНИЯ. ПОДХОДЫ К УПРАВЛЕНИЮ
Основатель Ф У Тейлор В г выпустил первую печатную работу которая... Основная идея используя замеры и наблюдения за работой исполнителей можно оптимизировать технологию выполнения работ...

Управление, его цель и задачи функции. Организация управления. Система управления в составе системы производства
Информационная система ИС это организационно упорядоченная взаимосвязанная совокупность средств и методов ИТ а также используемых для хранения... Российский ГОСТ РВ определяет информационную систему как... Основной задачей ИС является удовлетворение конкретных информационных потребностей в рамках конкретной предметной...

Имеется 4 основные задачи управления: стабилизация; программное управление; слежение; оптимальное управление
Управление это такое входное воздействие или сигнал в результате которого система ведет себя заданным образом... Различают способа управления в зав сти от того на основе какой информации...

Тема 1. Место и роль управления персоналом в системе управления предприятием
Персонал предприятия как объект управления... Принципы и методы управления персоналом... Функциональное разделение труда и организационная структура службы управления персоналом...

Организационно-методические указания: Основы управления организацией: СУЩНОСТЬ МЕНЕДЖМЕНТА И УПРАВЛЕНИЯ ОРГАНИЗАЦИЕЙ
РАЗДЕЛ I... Основы управления организацией... ТЕМА СУЩНОСТЬ МЕНЕДЖМЕНТА И УПРАВЛЕНИЯ ОРГАНИЗАЦИЕЙ...

Основные бизнес-процессы Процессы управления o Классификация процессов управления
o Классификация процессов управления... o Управленческие циклы... o Менеджмент ресурсов и менеджмент организации Процессы обеспечения...

КОНСПЕКТ ЛЕКЦИЙ УПРАВЛЕНИЕ ПЕРСОНАЛОМ ИСТОРИЯ РАЗВИТИЯ НАУКИ УПРАВЛЕНИЯ ПЕРСОНАЛОМ
ИСТОРИЯ РАЗВИТИЯ НАУКИ УПРАВЛЕНИЯ ПЕРСОНАЛОМ... Современные теории управления...

Вычислительная техника в управлении на примере управления международных связей ВГУЭС
Таким образом, информация не есть по сути простой набор фактов, цифр, графиков или диаграмм. Информация это знание, полученное с целью его использования в дальнейшем. Факты, цифры и графики не являются информацией, если они не будут использоваться в будущем. Бесполезные данные это не…

КОНСПЕКТ ЛЕКЦИЙ по дисциплине Корпоративное управление Экономика и управление на предприятии
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ... МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ... ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ...

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

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