Беларусь, рогачёв |
Введение
Создание символов и экземпляров клипов
Создаем символы
Итак, чтобы создать новый клип в среде Флэш МХ, откройте Library ( Ctrl+L ) и щелкните по плюсику в нижней части окошка.
Или вместо этого можно выбрать пункт меню Insert / New Symbol. В результате появится следующий диалог:
Если вы нажмете в нем кнопку Advanced, то увидите следующий вариант диалога
Этот же вариант диалога мог появиться перед вами и сразу - в том случае, если вы раскрывали предыдущий диалог этого типа кнопкой Advanced. Нам сейчас не нужны дополнительные возможности, поэтому можно вернуться к сокращенному виду, нажав кнопку Basic. Введите в текстовой строке имя символа (как мы уже говорили, символ - это нечто вроде класса, порождающего клипы ). Тип символа менять не надо, оставьте MovieClip . После нажатия ОК вы увидите, что в окне Library появилась новая строка с именем вашего символа. Заметьте, что в основном окне редактирования документа теперь открылся для редактирования именно наш клип. Это можно понять по содержимому полоски, показывающей текущий редактируемый клип.
Вид этой полоски, изображенный на рисунке, соответствует редактированию клипа Symbol 4. Напомним, что если вы захотите вернуться к редактированию основной сцены, вам нужно будет щелкнуть мышью по надписи Scene 1 (вообще-то, название основной сцены можно изменить и даже сделать несколько сцен; все это можно сделать с помощью панели управления сценами - знать бы только, зачем. На самом-то деле, сцена - это всего лишь сгруппированные кадры в корневом клипе ; мы практически не будем пользоваться множественными сценами). Попробуем что-то нарисовать внутри нашего символа, а потом этому рисунку скомандовать (при помощи контекстного меню) Convert to Symbol. Получится ли у нас что-то вроде вложенного символа? Нет, ничего подобного. Посмотрев в панель Library, мы увидим, что новый символ создался на том же уровне иерархии, что и старый. Тот же эффект мы получим, если создадим новый символ не с помощью Convert to Symbol, а с помощью Insert / New Symbol. Итак, мы можем сделать следующий вывод: символы во Флэш МХ не образуют иерархии (хотя в панели Library можно навести видимость иерархического порядка, собирая символы в папки; папка создается нажатием на значок папки в нижней части окна Library. Но это объединение в папки не имеет ровно никакого значения за пределами панели Library ). Однако мы далее будем много говорить об иерархии клипов. Какой же смысл тогда мы вкладываем в это понятие? Оказывается, создать иерархию можно, размещая внутри клипов не символы (что невозможно), а экземпляры других клипов.
Создаем экземпляры
Создать экземпляр клипа "вручную" очень просто. Нужно всего навсего вытащить клип из библиотеки на сцену. Если на сцене сейчас редактируется некоторый символ, - вы вложите вновь созданный экземпляр в этот символ. В один символ может быть вставлено любое количество экземпляров какого-либо клипа (в символы которых, кстати, тоже могут быть вложены другие клипы ).
Если вы хотите управлять созданными экземплярами программно, то надо задать им имена. Делается это в панели Properties. В левой верхней части ее имеется поле ввода с приглашением ввести туда имя клипа. Затем по этому имени вы сможете обращаться к клипу из вашего программного кода.
Как управлять вертикальным порядком ( z-order 'ом) созданных экземпляров? Можно выделять экземпляр и командовать ему (из меню Modify / Align ) Bring to Front или Bring Forward ( Ctrl+Shift+Up или Ctrl+Up ), или же, напротив, Send to Back или Send Backward ( Ctrl+Shift+Down или Ctrl+Down ). А можно создавать новые слои. Слева от "зебры" линейки времени расположена прямоугольная область, в которой написаны названия имеющихся слоев. В левой нижней части этого прямоугольника - как бы в его собственной статусной строке - расположена кнопка создания новых слоев. При создании нового слоя в линейке времени образуется новая строчка со своей собственной "зеброй". Естественно, все слои одного и того же клипа при переходах между кадрами ведут себя синхронно. Так вот, редактирование ведется всегда в том слое, который выделен. Если вы создадите новый слой, расположенный выше предыдущего, выделите кадр на его линейке времени и в этот кадр положите новый экземпляр клипа, то этот экземпляр будет расположен выше всех экземпляров из предыдущего слоя.
Заметим, что можно создавать новые клипы программно - с помощью createEmptyMovieClip. И затем в этих клипах программным образом рисовать. Программному рисованию в нашем курсе посвящена десятая лекция.
Также можно дублировать уже имеющиеся клипы с помощью функции duplicateMovieClip. Об этом мы подробнее поговорим в третьей лекции.
Чем отличаются MovieClip и Graphics
Вы уже видели, что в диалоге создания клипов и кнопок имеются три варианта: MovieClip , Button и Graphics . То, что кнопка отличается от обычного клипа, выглядит естественным. А вот чем MovieClip отличается от Graphics ? Оказывается, клип типа Graphics имеет одну важную особенность: его кадры всегда синхронизированы с кадрами "родительского" клипа (то есть того клипа, в котором лежит данный экземпляр Graphics 'a). И если мы программным образом управляем "родительским" клипом, то лежащий в нем Graphics автоматически останется синхронизирован с родителем. А вот если бы внутри лежал MovieClip , то ему потребовалось бы отдельно подавать те же команды, что и родителю. Итак, использование клипов типа Graphics - это тот достаточно редкий случай, когда линейки времени двух клипов зависят друг от друга. Во всех остальных случаях (а MovieClip все же используют гораздо чаще, чем Graphics ), линейки времени независимы.