Совместное использование образцов и библиотек
Совместное использование образцов и библиотек
В свете последних тенденций глобализации и международного разделения труда будет нелишним разговор о совместном использовании образцов и целых библиотек. Речь в данном разделе пойдет о том, как сделать наши образцы доступными для других разработчиков.
Предположим, что мы работаем в большой организации, занимающейся созданием фильмов в среде Flash, в этакой Flash-киностудии. И каждый такой фильм создается несколькими людьми: один рисует персонажи, другой готовит фоновую графику, третий анимирует все, что должно двигаться, пятый занимается озвучиванием и т. д. Кино — искусство коллективное, и "сочинить" полнометражный фильм одному человеку крайне сложно. (Хотя, в принципе, возможно, что нам постоянно пытаются доказать мученики киноандерграунда.)
Допустим, наша работа — получить готовые персонажи и поместить их на готовую "сцену", где уже имеется фоновая графика. Рисовальщик персонажей передает нам документ Flash, в библиотеке которого содержатся эти самые персонажи в виде образцов. Затем специалист по фоновой графике приносит нам другой документ, куда мы должны поместить эти персонажи. И оба с чувством выполненного долга отправляются пить кофе (или что там пьют художники?). Теперь дело за нами.
К счастью, Flash предоставляет возможность открыть библиотеку другого документа и позаимствовать из нее нужные образцы. Это делается очень просто, а как — мы скоро узнаем.
Хорошо, мы это сделали! Но наши мучения не закончились. Едва мы успели скопировать персонажи в основной документ, приходит начальник и с сияющей улыбкой начинает излагать очередную свою (или чужую, выданную за свою) идею. Заключается она в следующем.
Пусть фильм, в создании которого мы принимаем участие, состоит из нескольких файлов Shockwave/Flash: Эпизодl.swf, Эпизод2.swf и т. д. Соответственно, все персонажи, участвующие более чем в одном эпизоде, встречаются сразу в нескольких файлах. А нельзя ли их как-то вынести из этих файлов и поместить в отдельный файл? Налицо две выгоды от такого подхода. Во-первых, файлы Shockwave/Flash, составляющие фильм, получатся меньшими по размерам за счет того, что персонажи будут храниться не в каждом из этих файлов, а только в одном. Во-вторых, чтобы внести в облик какого-либо персонажа изменения — например, поменять ему прическу, достаточно будет изменить всего один файл и повторно его экспортировать.
Что мы ответим начальнику? Правильно — да! Запросто! Благо, Flash позволяет создавать разделяемые образцы и библиотеки. О них мы тоже поговорим в этой главе.
Копирование образцов из документа в документ
Самый удобный способ позаимствовать чужой образец — просто скопировать его из библиотеки нужного документа. Как мы уже знаем, Flash — многодокументное приложение, позволяющее открыть сразу несколько документов. Это значит, что мы можем открыть во Flash сразу два нужных нам документа и скопировать образцы из библиотеки одного документа в библиотеку другого.
Но как это сделать? Ведь панель Library всего одна! И отображает она содержимое библиотеки только того документа, что открыт в активном окне. А нам нужно иметь две панели — чтобы просматривать содержимое библиотек всех открытых документов!
Давайте взглянем на панель Library (см. рис. 8.3). Точнее, на небольшой инструментарий, находящийся в самой верхней ее части, выше строки статуса, где отображается количество образцов в библиотеке. Первое, что мы увидим, — это большой раскрывающийся список, показанный на рис. 8.17. В этом списке перечислены все открытые нами во Flash документы. Просто выбираем нужный — и панель Library выведет содержимое его библиотеки.
Это, конечно, замечательно, но как же вывести на экран содержимое сразу двух библиотек? А вот как. Нажмем кнопку New library panel, находящуюся в правой части небольшого инструментария панели Library:
На экране появится вторая панель Library, изначально отображающая содержимое библиотеки того же документа, что и первая. Выбираем в раскрывающемся списке открытых документов этой панели нужный — и получаем то, что нам надо (рис. 8.18). Теперь мы можем перетаскивать образцы из одной библиотеки в другую.
Собственно, нам совсем не обязательно открывать на экране несколько панелей Library. Мы можем просто перетащить экземпляры с рабочего листа одного документа на рабочий лист другого (конечно, в этом случае следует позаботиться о том, чтобы окна обоих документов были видны на экране) или скопировать их через буфер обмена. Flash при этом также выполнит копирование соответствующих образцов.
Если мы скопируем в библиотеку другого документа образец, имя которого совпадает с именем уже имеющегося в этой библиотеке образца, снова возникнет конфликт имен. На экране появится уже знакомое нам диалоговое окно Resolve Library Conflict (см. рис. 8.16), с помощью которого мы сможем указать Flash, как разрешить этот конфликт.
Иногда бывает нужно, чтобы при переключении между открытыми документами Flash панель Library всегда отображала содержимое библиотеки только одного документа. В этом случае мы переключимся в нужный документ и включим кнопку-выключатель Pin current library,находящуюся в инструментарии этой панели:
Мы можем открыть нужный документ не целиком, а только его библиотеку. Для этого достаточно выбрать пункт Open External Library подменю Import меню File или нажать комбинацию клавиш <Ctrl>+<Shift>+<0>. На экране появится стандартное диалоговое окно открытия файла Windows; выберем в нем файл документа Flash, из которого хотим позаимствовать образцы, и нажмем кнопку открытия.
Обновляемые образцы
Присвоить чужой образец — оно, конечно, хорошо… Но вот что делать, если создатель этого образца изменил его? Скопировать повторно? Можно, конечно, поступить и так, но есть способ получше. А именно, можно заставить Flash автоматически проверять документ Flash, из которого мы скопировали образец, на предмет обновления, и самому выполнять копирование исправленных образцов.
Давайте введем пару терминов, которыми будем пользоваться в дальнейшем. Изначальный образец, изменения в котором мы хотим отслеживать, назовем образцом-источником. А скопированный нами образец, находящийся в нашем документе, назовем обновляемым образцом. Flash перед экспортом готового изображения в формат Shockwave/Flash самостоятельно или по нашей указке проверит, изменился ли образец-источник, и, если он изменился, снова скопирует его в библиотеку нашего документа, обновив соответствующий ему изменяемый образец.
Как сделать образец обновляемым? Очень просто. Сначала выведем на экран панель Library. Выделим в списке нужный образец и выберем пункт Properties контекстного или дополнительного меню, чтобы вызвать диалоговое окно Symbol Properties. Нажмем кнопку Advanced, расположенную в нижней части этого окна. Диалоговое окно Symbol Properties развернется в свой "полный" вид (рис. 8.19).
В левом нижнем углу этого диалогового окна видна кнопка Browse. Нажмем ее. На экране появится стандартное диалоговое окно открытия файла Windows. Выберем файл документа, в котором находится образец-источник, и нажмем кнопку открытия. После этого на экране появится диалоговое окно Select Source Symbol, внешне похожее на окно Swap Symbol (см. рис. 8.9). Выберем в списке этого окна нужный образец-источник и нажмем кнопку ОК.
Последнее, что нам останется, — это нажать кнопку ОК окна Symbol Properties. Но перед этим настоятельно рекомендуется включить флажок Always update before publishing этого окна. Тогда Flash будет сам проверять образец-источник на предмет обновления перед экспортом нашего документа. Если мы не включим этот флажок, то сами должны будем запускать процесс проверки.
Чтобы выполнить обновление всех образцов вручную, нужно выбрать пункт Update контекстного меню или дополнительного меню панели Library. На экране появится диалоговое окно Update Library Items (рис. 8.20).
Большую часть этого окна занимает список созданных нами обновляемых образцов. Каждый пункт этого списка имеет флажок, включив который, можно задать обновление для данного образца. (Изначально все эти флажки включены.) Процесс обновления запускается нажатием кнопки Update. Чтобы закрыть после этого окно Update Library Items, нужно нажать кнопку Close.
К несчастью, Flash никак не помечает обновляемые образцы в списке панели Library. Так что если мы захотим проверить, является ли какой-либо образец обновляемым, придется вызвать на экран диалоговое окно Symbol Properties. Если данный образец является обновляемым, в нижней части этого окна, над флажком Always update before publishing будут стоять имя файла документа Flash, содержащего образец-источник, и имя этого образца. Ну, и будет включен флажок Always update before publishing.
Вот теперь обновляемый образец создан. Мы можем проверить, действительно ли Flash отследит все обновления в этом образце.
Впоследствии мы можем изменить для любого обновляемого образца как образец-источник, так и файл документа Flash, в библиотеке которого он хранится. Для этого нужно открыть диалоговое окно Symbol Properties, нажать кнопку Symbol, выбрать нужный образец в диалоговом окне Select Source Symbol и нажать кнопку ОК. Чтобы изменить файл документа, следует нажать кнопку Browse и выбрать нужный файл в стандартном диалоговом окне открытия файла Windows.
Разделяемые образцы
А еще Flash позволяет создавать разделяемые образцы. Такие образцы, будучи созданными в каком-либо изображении, могут быть использованы затем любым другим изображением Flash. При этом разделяемые образцы вообще не присутствуют в библиотеках использующих их изображений, а загружаются из библиотеки изображения, в котором они созданы.
Библиотека изображения Flash, содержащая разделяемые образцы, называется разделяемой библиотекой. Как правило, такое изображение не содержит никакой графики — только саму разделяемую библиотеку, так что называть его изображением не совсем корректно.
Обычно в виде разделяемых образцов выполняют фрагменты графики, использующиеся сразу в нескольких изображениях Flash. Таким образом, во-первых, мы можем сильно сократить размеры результирующих файлов Shockwave/Flash, ведь все эти элементы будут присутствовать только в одном-единственном файле, содержащем разделяемую библиотеку. И, во-вторых, нам не придется создавать эти фрагменты во всех использующих их изображениях.
Разговор о разделяемых образцах будет долгим.
Создание разделяемых образцов
Начнем с создания разделяемых образцов. Сначала выделим в списке панели Library образец, который хотим сделать разделяемым, и вызовем на экран диалоговое окно Symbol Properties. Щелкнем по кнопке Advanced, чтобы развернуть его в "полный" вид (см. рис. 8.19). И рассмотрим элементы управления, расположенные в группе Linkage.
Первое, что нам понадобится, — это включить флажок Export for runtime sharing. Именно после этого Flash превратит выделенный образец в разделяемый. Нам останется только задать пару параметров, которые мы сейчас рассмотрим.
Прежде всего, каждый разделяемый образец должен иметь уникальный идентификатор. Использующие этот образец изображения применяют этот идентификатор, чтобы загрузить нужный им образец из разделяемой библиотеки.
На идентификатор разделяемого образца накладываются такие же ограничения, что на имена образцов, за тем исключением, что он не может содержать пробелов. Кроме того, идентификаторы разделяемых образцов должны быть уникальными в пределах всей библиотеки, в отличие от имен образцов, которые должны быть уникальны только в пределах папки.
Flash создаст идентификатор разделяемого образца сам, как только мы включим флажок Export for runtime sharing, и подставит его в поле ввода Identifier. Сформированный Flash идентификатор будет совпадать с именем образца, лишенным пробелов. Мы можем оставить его неизменным, а можем изменить.
Кроме идентификатора, Flash обязательно требует, чтобы мы ввели интернет-адрес, по которому будет находиться создаваемая нами разделяемая библиотека. Этот интернет-адрес вводится в поле ввода URL. Конечно, если мы точно знаем, где именно опубликуем разделяемую библиотеку, то обязательно его введем. В противном случае лучше ввести туда, скажем, интернет-адрес http://local host/ — он обозначает интернет-адрес компьютера, на котором мы сейчас работаем (локальный хост).
Задав нужные параметры, нажмем кнопку ОК. И повторим все перечисленные выше операции для всех образцов, которые хотим сделать разделяемыми. (Обычно разделяемая библиотека включает в себя несколько разделяемых образцов.) Чтобы отказаться от создания разделяемого образца, мы нажмем кнопку Cancel.
После этого посмотрим на список образцов панели Library, а точнее, на колонку Linkage этого списка. У неразделяемого образца в этой колонке будет СТОЯТЬ прочерк, а У разделяемого — СЛОВО Export: <Идентификатор разделяемого образца>. Так что мы сразу увидим, какие образцы превратили в разделяемые.
Есть и еще один способ создания разделяемых образцов. Выделим в списке панели Library нужный образец и выберем пункт Linkage контекстного или дополнительного меню этой панели. На экране появится диалоговое окно Linkage Properties (рис. 8.21).
Как видим, это окно содержит элементы управления, знакомые нам по группе Linkage окна Symbol Properties. Так что не будем повторяться.
Собственно, наша первая разделяемая библиотека почти готова. Осталось только экспортировать ее в формат Shockwave/Flash (о том, как это делается, см. главу 21).
Дальнейшие действия по созданию разделяемой библиотеки уже не связаны с Flash. Они включают в себя, прежде всего, помещение готовой разделяемой библиотеки (файла в формате Shockwave/Flash) на какой-либо Web-сервер. Если же мы собираемся распространять свои Flash-творения другим способом, например, на компакт-дисках, то нужно будет записать файл разделяемой библиотеки на эти диски. Одним словом, мы должны сделать свою разделяемую библиотеку доступной.
Нужно только иметь в виду вот что. Во-первых, если проигрыватель Flash не сможет загрузить файл разделяемой библиотеки, он не сможет и правильно отобразить изображение, использующее разделяемые образцы. Во-вторых, проигрыватель Flash всегда загружает разделяемую библиотеку целиком, даже если ему нужен всего один образец, поэтому не следует делать такие библиотеки слишком большими.
Использование разделяемых образцов
Итак, наша разделяемая библиотека готова. Мы опубликовали ее на Web-сервере или распространили иным способом, например, на дискетах или по электронной почте. И теперь наш коллега хочет использовать один из содержащихся в ней разделяемых образцов. Что он для этого должен сделать?
Нужно сразу сказать, что использовать разделяемые образцы в своем документе он может двумя способами. Выбор способа зависит от того, имеет ли наш коллега доступ к исходному файлу документа нашей разделяемой библиотеки. Вообще, будет лучше, если мы предоставим ему этот файл — в этом случае он избежит некоторых проблем, о которых будет рассказано ниже.
Предположим, что мы предоставили своему коллеге этот файл. В таком случае он сможет воспользоваться первым способом.
Итак, наш коллега открывает свой документ Flash и собирается поместить в него разделяемый образец из нашей библиотеки. Для этого ему нужно сначала открыть исходный файл документа, в котором находится эта разделяемая библиотека. Он выбирает пункт Open External Library подменю Import меню File или нажимает комбинацию клавиш <Ctrl>+<Shift>+<0>, после чего выбирает наш файл в стандартном диалоговом окно открытия файла Windows и нажимает кнопку открытия. Напоследок ему останется вывести на экран две панели Library, отображающие содержимое обеих библиотек: принадлежащей его документу и разделяемой.
Теперь нашему коллеге останется перетащить нужный образец из панели Library разделяемой библиотеки на панель Library его документа, выполнив операцию импорта образца. Он также может перетащить этот образец прямо на рабочий лист; в этом случае Flash не только создаст экземпляр этого образца, но и скопирует образец в библиотеку его документа. Скопированный таким образом разделяемый образец будет помечен как импортированный: в колонке Linkage списка образцов панели Library против его имени будет стоять слово Import: <Имя разделяемого образца>.
Самое интересное в том, что образец при этом копируется в библиотеку нового документа полностью, т. е. вместе со своим содержимым. Вероятно, это сделано для того, чтобы удобнее работать с такими образцами: при создании экземпляра разделяемого образца данные для этого будут взяты из библиотеки нового документа, чтобы лишний раз не тревожить разделяемую библиотеку (которая, к тому же, в данный момент может оказаться недоступной).
Но когда наш коллега выполнит экспорт готового документа в формат Shockwave/Flash, Flash не включит в результирующий файл разделяемые образцы, а поместит ссылки на них, указывающие на файл разделяемой библиотеки. Встретив эти ссылки, проигрыватель Flash загрузит файл разделяемой библиотеки и извлечет разделяемые образцы оттуда.
Кстати, наш коллега вполне сможет при желании исправить импортированный образец, воспользовавшись любым из описанных в начале этой главы режимов правки. При этом Flash выведет на экран окно-предупреждение, говорящее о том, что после правки этот образец перестанет быть импортированным, потеряет связь с разделяемой библиотекой, из которой был взят, и станет обычным образцом — "собственностью" нового документа. Нашему коллеге будет нужно нажать кнопку ОК этого окна, чтобы все-таки выполнить правку образца, или Cancel — чтобы отказаться от этого.
Хорошо, наш коллега использовал какой-либо образец из разделяемой библиотеки в своем изображении. А мы тем временем исправили этот образец, снова экспортировали свою библиотеку и распространили ее. Но коллега об этом не узнает — в библиотеке его документа сохранятся данные старого образца! Как поступить в этом случае?
Проще всего нашему коллеге превратить использованный разделяемый образец в обновляемый — тогда он будет в курсе всех обновлений. Для этого он должен будет получить от нас новый исходный файл документа, содержащего разделяемую библиотеку, и привязать использованный им образец к нему. Как это сделать, было описано ранее в параграфе, посвященном обновляемым образцам.
Коллега может и проигнорировать все сделанные нами исправления. Все равно результирующий файл Shockwave/Flash будет использовать образцы из разделяемой библиотеки. А значит, все наши исправления будут актуальными, и творение нашего коллеги в любом случае отобразится нормально.
Наш коллега может изменить некоторые параметры использованного разделяемого образца. Для этого ему нужно выделить его в списке образцов панели Library и выбрать пункт Properties или Linkage контекстного или дополнительного меню панели. На экране появится одно из уже знакомых нам диалоговых окон — Symbol Properties или Linkage Properties.
Поле ввода Identifier служит, как мы помним, для задания идентификатора разделяемого образца. Если мы в своей разделяемой библиотеке изменили этот идентификатор, наш коллега сможет исправить его, воспользовавшись данным полем ввода.
В поле ввода URL задается интернет-адрес файла Shockwave/Flash разделяемой библиотеки. Изначально туда подставляется тот интернет-адрес, что мы ввели, когда превращали образец в разделяемый. Но не всегда можно точно знать, по какому именно интернет-адресу мы опубликуем нашу разделяемую библиотеку (мы, например, не знали, поэтому ввели в это поле адрес http://localhost/), так что возможность впоследствии исправить его очень пригодится нашему коллеге.
И, наверно, уже не стоит говорить о том, что после ввода всех нужных данных следует нажать кнопку ОК.
А теперь предположим, что мы не дали своему коллеге исходный файл документа Flash с разделяемой библиотекой. Что он будет делать? Ведь он не сможет получить данные нужного ему разделяемого образца.
В этом случае нашему коллеге придется сначала создать новый образец, который заменит нужный ему разделяемый на время работы с документом (образец-заглушка). Образец может быть как "пустым", т. е. не содержащим никакой графики, так и "непустым" — это различие не принципиально. В любом случае образец-заглушка будет заменен после экспорта реальным разделяемым образцом.
Итак, образец-заглушка готов. Наш коллега выделяет его в списке образцов панели Library и вызывает на экран диалоговое окно Symbol Properties. Далее он устанавливает флажок Import for runtime sharing; если же этот флажок недоступен, то предварительно снимает все остальные флажки группы Linkage. Теперь ему останется только ввести идентификатор разделяемого образца в поле ввода Identifier и интернет-адрес файла Shockwave/Flash разделяемой библиотеки в поле ввода URL и нажать кнопку ОК.
Разделяемые образцы-шрифты
В главе 7, говоря о работе с текстом в среде Flash, мы упомянули о проблеме, возникающей при экспорте готового изображения в формат Shockwave/Flash. В результирующий файл, как мы помним, помещаются описания всех шрифтов, использованных в документе, что может вызвать значительное увеличение размера этого файла. Для решения этой проблемы предлагалось несколько путей, которые не будем здесь перечислять — все они описаны в главе 7.
Но существует еще один путь решения данной проблемы, о котором мы еще не знаем. Это создание разделяемого образца-шрифта. Такой шрифт может быть затем использован в любом другом документе, как всякий разделяемый образец. Фактически при этом мы "выносим" описание этого шрифта из использующего его изображения и тем самым делаем содержащий его файл Shockwave/Flash меньше.
Создание разделяемого образца-шрифта происходит в два этапа. На первом этапе создается обычный, неразделяемый образец-шрифт. На втором этапе он делается разделяемым.
На заметку
Создание обычных, неразделяемых, образцов-шрифтов лишено смысла. Описание шрифта все равно помещается в результирующий файл Shockwave/Flash при экспорте готового документа. Имеет смысл создавать только разделяемые образцы-шрифты, которые могут быть использованы в других документах.
Обычный образец-шрифт создается следующим образом. Выбираем в дополнительном меню панели Library пункт New Font. На экране появится диалоговое окно Font Symbol Properties (рис. 8.22).
В поле ввода Name задается имя создаваемого образца-шрифта. Это имя может совпадать с оригинальным именем шрифта, присутствующего в Windows. В раскрывающемся списке Font выбирается шрифт, на основе которого создается образец. Флажки Bold и Italic позволяют создать соответственно полужирный шрифт и курсив. Флажок Bitmap text заставляет Flash преобразовать символы получающегося образца-шрифта в растровые изображения; в некоторых случаях это может уменьшить размер файла Shockwave/Flash разделяемой библиотеки. А в поле ввода Size вводится размер шрифта.
Задав все нужные данные, нажмем кнопку ОК. Если же мы передумали создавать образец-шрифт, нажмем кнопку Cancel.
Созданный таким образом образец-шрифт появится в списке образцов панели Library. К сожалению, Flash не предоставляет возможности посмотреть, как выглядят его символы. Для этого придется создать текстовый блок, ввести в нем какой-либо текст и отформатировать его этим шрифтом.
Если мы ошиблись в задании параметров образца-шрифта, то всегда можем исправить нашу ошибку. Выделим нужный образец-шрифт в списке панели Library и выберем пункт Properties контекстного или дополнительного меню. На экране появится диалоговое окно Font Symbol Properties, в котором мы сможем задать нужные параметры.
Так, образец-шрифт создан. Настала пора сделать его разделяемым.
Выделим образец-шрифт в списке образцов панели Library и выберем пункт Linkage контекстного или дополнительного меню этой панели. На экране появится диалоговое окно Linkage Properties (см. рис. 8.21). Зададим в нем нужные параметры (они описывались ранее в этой главе) и не забудем нажать кнопку ОК.
Чтобы использовать готовый образец-шрифт в другом документе, мы поступим так же, как и в случае обычного образца. То есть откроем исходный файл документа, содержащий разделяемую библиотеку, воспользовавшись пунктом Open External Library подменю Import меню File, и перетащим образец-шрифт на панель Library нового документа.
После этого мы можем, как обычно, форматировать текст с использованием созданного шрифта, просто выбрав его в списке шрифтов панели Properties (см. рис. 7.4). Использованный образец-шрифт будет помечен в этом списке звездочкой (рис. 8.23).
Превращение разделяемого образца в обычный
Может получиться так, что мы захотим превратить использованный разделяемый образец в обычный, неразделяемый. Это делается следующим образом.
Вызовем на экран диалоговое окно Symbol Properties или Linkage Properties (какое — не имеет значения). Отключим переключатель Import for runtime sharing. И нажмем кнопку ОК.
Данный текст является ознакомительным фрагментом.