Дублирование

Дублирование

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

Действие Duplicate/Remove Movie Clip - создание или удаление копий экземпляров символов.

Давайте посмотрим, как использовать данное действие.

Создайте и разместите на сцене символ типа Movie Clip и присвоив имя "podarok", так как было описано ранее. Нам еще понадобится кнопка, которую мы заставим работать ксероксом, копируя символы.

Выберите из списка действий Duplicate Movie Clip в разделе Actions.

Duplicate Movie Clip - создать копию

Remove Movie Clip - удалить копию

В поле Target указывается путь к копируемому образцу, для этого поставьте курсор в это поле и нажмите кнопку внизу от поля (похожа на штурвал), в открывшемся окне появится список доступных символов (объектов), часто при работе со сложными проектами необходимый символ отсутствует в списке, такое может происходить по разным причинам (действие устанавливается в кадре, до появления символа на экране, символ может быть вложенным в другой символ или его имя генерируется автоматически), в этом случае вы указываете путь к имени символа вручную (например NameClip).

В поле New Name - указывается имя создаваемой копии, при этом могут задаваться, как произвольные имена, в случае с индивидуальным копирование, так и генерируемые скриптом, в случае многократного копирования.

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

Рассмотрим следующий скрипт:

on (release) {
name = "podarok"+ random(100);
duplicateMovieClip("podarok", name, random(100));
setProperty(name, _x, random(400)+10);
setProperty(name, _y, random(400)+10);
}

Расшифровка
- с помощью команды Set Variable задаем имя переменной name, 

- присваиваем этой переменной значение (после знака равно):

- "podarok" - новое имя объекта (копии) 

- + (склеивание)

- random(100) случайное число из диапазона от 0 до100.

В итоге значение переменной name будет равно podarokn, где n случайное число.

Далее встречается новая команда duplicateMovieClip (где мы указываем имя нашего клипа на сцене помните? - podarok и имя нового образца (сгенерированного в переменную name), ну и конечно же случайным образом заданный номер уровня.

  setProperty (name, _x, random(400)+10);

Нужно указать в какое место ролика нужно положить скопированный объект. Для этого используем команду Set Property, где указываем имя нового объекта, и расположение по оси _x, так же случайным образом. Рассмотрим от чего зависят цифры в скобках 400. Посмотрите установки своего ролика (Movie Properties, чему равна высота и ширина, от этих цифр и отталкивайтесь)

 setProperty (name, _y, random(400)+10);

Тоже самое только указываем расположение нового объекта по оси _y.

Если вы сделаете все правильно, то получите вот такой результат:

Задание

Попробуйте создать звездное небо, надеюсь это не составит труда.

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

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

Вот так он выглядит

for (i; i<100; i++) {
name = "podarok" + random(i);
duplicateMovieClip ("podarok", name, random(i));
setProperty (name, _x, random(400)+10);
setProperty (name, _y, random(400)+10);
}

for (i; i<100; i++) 
i - имя переменной (счетчик)
цикл будет выполнятся столько раз сколько указано i<100 (т. е 100 раз)
i++ увеличиваем счетчик на одну единицу.
Все что заключается между фигурными скобками называется телом цикла.

Читается эта конструкция следующим образом: Выполнять тело цикла до тех пор пока i меньше 100.
В начале выполнения цикла i=0, цикл выполняется и счетчик i увеличивается на единицу. И т. д.

Назад                                                                                                                                                                                                                    Далее

Последнее изменение: Среда, 16 сентября 2015, 10:46