Конкретные примеры: планирование, изготовление и компоновка

Пора заняться «реальными» вещами. Итак, попробуем создать презен­тацию Flash, которую можно было бы представить в качестве неболь­шого сайта в сети, и, более того, поместить на CD-ROM. В следующих трех разделах мы рассмотрим, как спланировать, создать и экспортиро­вать ролик Flash MX для парка Livingston Skatepark в солнечной Шот­

ландии.

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

Разработанная таким образом стратегия дальнейшей работы может быть описана следующим набором правил:

• минимум дизайна, главную роль играет ролик;

• он должен содержать видеозапись катания на скэйте в парке;

• очень простенький текст, оформленный обычным полужирным шрифтом;

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

• это довольно оживленное место, в котором, каютравило, много мест­ного народа — это тоже должно быть упомянуто;

• звук очень важен, но нужно учесть, что обычный домашний компью­тер обладает очень небольшим набором средств (вообще-то совсем не обладает) для создания звуковых элементов, аналогичных по ка­честву профессионально записанным;

• несмотря на то, что в ролике используется видео, мы хотим, чтобы он не «тормозил» даже при небольшой скорости передачи. Можно пред­ложить пользователю в начале выбрать скорость передачи;

• видео, как правило, представляет собой линейную последователь­ность элементов. Это открывает новые возможности в отношении интерактивности;

• ролик должен полностью отображаться на экране в режиме 1024×768. Кроме того, было бы неплохо, если бы в CD-ROM версии он также «умещался» в режиме 800×600.

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

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

au- aua -u → ««< jv m"∙a>*t ⅛t¼ (uu ». um-vu ∣^√um .i√∙'o £&- tt,(ʃ uk wu ∙rt∙. ⅛m 4>i*v?,ftew fttt

Неудачный план или планирование неудач

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

Со стилистической точки зрения я решил не вести съемку с самого скэйта, когда камера часто ныряет и делает крутые виражи. Не то, чтобы я против этого — совсем нет — просто быстро движущиеся объекты зас­тавляют «попотеть» модемы. Запомните — чем более статична картинка, тем выше качество видеозаписи, а значит и меньше размер файла.

В итоге я отснял материала примерно на час, вроде бы много, тем не менее, после отбора собираюсь собрать всего лишь пятиминутный ро­лик из кадров с действительно хорошим качеством. К тому же я погово­рил с несколькими завсегдатаями о парке и запомнившихся им эффект­ных падениях скэйтбордистов. По разным причинам ни один из них не согласился на съемку нашей беседы — только катание. Так, мои планы запечатлеть заядлых мастеров, рассказывающих выразительные исто­рии из своей практики, пришлось отложить до лучших времен.

В основе лежит золотое правило оператора — отнюдь не все, что вы отсняли, будет выглядеть так, как вы задумывали. В кадр попадет куча абсолютно ненужных вещей, могут возникнуть проблемы с оборудованием, кто-то из людей будет стесняться. Но, с другой стороны, вам может попасться совсем незапланированный материал, неожиданные объекты и какие-нибудь сумасшедшие события, которые позволят заметно обогатить содержание ролика. (Представьте, вы снимаете диалог двух людей в парке. В этот момент в кадр незаметно попадает собака и внезапно бросается на одного из беседующих. Великолепно, не правда ли? Как минимум, пятьдесят баксов в любом из телевизионных шоу на такие темы вам обеспечены. А сколько еще разных сюрпризов можно встретить!)

Возникает проблема — из шестидесятиминутного материала я хочу сделать 10-15 клипов. В идеальном случае они бы следовали один за дру­гим, но в действительности они перемешаны со скучными ненужными кадрами.

Просмотр отснятого материала

Сразу после возвращения из парка очень хочется гут же сесть за компь­ютер и заняться отбором и вырезанием кадров из имеющегося матери­ала, т. к. у меня есть еще пара часов до намеченной встречи с друзьями. Казалось бы, времени хватит, и, тем не менее, придется остудить свой пыл — это не лучшая идея. На самом деле, файлы видео, как правило, очень велики по размеру, и работа с ними отнимает много времени. Т ем более, если вы не применили сжатие файлов. Мы все-таки будем их сжимать при импортировании во Flash, стараясь при этом не понизить качество изображения. К примеру, 10-минутное цифровое видео, сня­тое при наилучшем разрешении и сжатии в формате DV (очень незна­чительное сжатие), займет на жестком диске около 1.6 гигабайт. Даже если у вас стоит винчестер громадной емкости, такие большие файлы сильно снизят производительность любого компьютера, за исключени­ем самых «быстрых».

Так что же тогда я стану делать? Планировать. Я забываю о компью­тере на какое-то время. Устраиваюсь поудобнее на диване с чашечкой хорошего кофе или чего-нибудь еще, положив рядом с собой бумагу, ручку и свою видеокамеру. Теперь я собираюсь прокрутить свой часо­вой шедевр и отметить начало и конец всех удачных кусков (на этой ста­дии большая точность не нужна). Для этого мне придется просмотреть запись несколько раз, после чего я уже достаточно хорошо буду знать отобранный материал. Советую заниматься этим до тех пор, пока запись не начнет надоедать, и вы не почувствуете, что знаете ее содержание наизусть.

В итоге я отобрал девять клипов, которые достаточно полно отражают то, что парк может предложить своим посетителям. При этом появилась идея добавить интерактивные элементы. Я думаю, было бы неплохо вклю­чить возможность воспроизведения части ролика в замедленном дей­ствии, скажем, при нажатии кнопки. И, наверное, громкость звука во вре­мя такого показа нужно уменьшить. Однако вернемся к этому позже.

Скачивание видео

Теперь нужно ролик перенести с камеры на компьютер. Есть множе­ство способов сделать это в зависимости от используемого приложения и вида компьютера (Мае или PC). Я обычно для этого использую Moto DV, а затем обрабатываю запись в Cleaner 5. Это не самые дешевые про­граммы, поэтому здесь я собираюсь использовать Windows Movie Maker, программу, поставляемую вместе с Windows XP.

Для скачивания лучше всего, конечно, использовать кабель Fire Wire. Это обеспечит наилучшее качество переноса, да и стоит такой кабель не очень дорого (если, разумеется, он не входит в комплектацию компью­тера) .

К счастью, в звуковой плате моего компьютера есть порт FireWire, с его помощью я подключаю цифровую камеру и нажимаю на ней кнопку воспроизведения записи. Через’ пару секунд появляется диалоговое окно, в котором мне предлагается переписать видео с использованием Windows Movie Maker. При нажатии кнопки ОК открывается окно за­писи с несколькими параметрами. Я хочу получить изображение наи­лучшего качества из всех возможных, поэтому в меню Параметры (Settings) я из списка выбираю Другое (Other), после чего появляется еще один список. Из него я выбираю DV-AVI (25 Мб/с).

При таком выборе видео переносится с незначительным сжатием с ис­пользованием кодека DV — несжатый файл в данном формате будет иметь размер в 4 раза большие. Учитывая то, что вы используете домашний ком­пьютер, графические возможности которого отнюдь не запредельны, с та­кими большими файлами работать очень сложно (читай, долго).

В нижней части окна Windows Maker есть несколько голубых кно­пок, управляющих процессом воспроизведения ролика камерой. Это позволяет перематывать запись в начало каждого клипа, которые я ото­брал, лежа на диване. Именно на этом этапе и становится понятно, что я не зря потратил время на многократный просмотр своего шедевра. Для уверенности можно захватывать несколько кадров до начала каждого куска и несколько кадров после его конца. При нажатии кнопки Запи­сать (Record) скачивание начинается, а при нажатии кнопки Стоп (Stop) открывается окно сохранения файла, в котором я могу указать програм­ме, куда сохранить файл видео.

 : -d,windows movie moket slkdfiyef mswmm,фаап поевка §ио клип bficnp ; d & «3 , к, ⅛ ks x,j63 j⅛c3√!c⅛p^∣5∙
j сбормки x
,` -uslzj
»« учи» 1
¾⅝-~~-ς∙—'~r-~~∙'r"^'-~—Γ",x∙∙~,.∙~~^ ——∙∙κ-~∙— “ 
млъфипьм ^отправить» ξg записать
 
,l^t мой сбоек*.
5 глкса
,4/27/2002 152 pm

Теперь, после того как весь файл перенесен на компьютер, я сталкива­юсь с редактором временной шкалы. Можно слегка обработать изобра­жение, например, обрезать лишние кадры в начале и конце каждого кус­ка или удалить неудавшиеся кадры внутри них. По умолчанию Windows Movie Maker разбивает весь ролик на «клипы» так, как будто между ними нет связи, но вас это не должно смущать. Это только условное разбиение, я все еще работаю с одним файлом. Я щелкаю на каждом клипе и проиг­рываю его в окне предварительного просмотра. При этом прихожу к вы­воду, что первый из них и два последних можно удалить, а затем щелкаю на первом из отобранных клипов и, нажав на клавишу Shift, — на после­днем. Теперь можно все выделенные таким образом клипы перенести на временную шкалу, расположенную в нижней части экрана.

Итак, для создания файла, готового для импорта во Fiash, нужно все­го лишь выполнить следующие шаги.

1. В меню OaftTV(File) выберите пункт Сохранить фильм (Save Movie).

2. Установите Качество воспроизведения (Playback Quality) на Другое

(Other), выберите из списка ‘DV-AVI PAL (25 Mbps)’ (или NTSC, если в вашей стране используется этот формат).

3. Нажмите ОК.

4. Задайте название файлу с новым клипом и нажмите кнопку Сохра­нить (Save).

Я проделал такую процедуру со всеми девятью клипами. Можете не волноваться по поводу того, что видео в таком виде при воспроизведе­нии на компьютере кажется нестабильным. Оно еще не преобразовано к виду, наиболее подходящему для воспроизведения, и ваша машина будет изо всех сил стараться проигрывать запись при наилучшем разре­шении в формате DV, пытаясь в то же время не уменьшать частоту сме­ны кадров. Во Flash все проблемы будут решены.

В соответствии с наброском, сделанным в предыдущих разделах, я решил задать изображению квадратный формат. Вообще-то размеры кадра определяются производительностью процессора, необходимым размером файла и доступной областью экрана. Поскольку в нашем слу­чае видео должно быть в центре внимания, я решил выделить сравни­тельно большую часть экрана размером 360×360 пикселей.

Теперь исходное изображение в формате 720×576 (PAL) нужно пре­образовать к выбранному виду. Для этого я использую AdobeAfterEffects, так как эта программа у меня уже есть и с ней довольно просто обра­щаться. Однако для этого можно использовать любое другое подходя­щее приложение, причем некоторые из них намного дешевле других.

Вообще говоря, лучше выбрать по ширине и высоте такие размеры, что­бы они были кратны четырем, так как коДек Sorenson Spark преобразу­ет видео к виду 4X4 сегмента. То есть, например, если вы задали разме­ры 157X157, то кодек автоматически добавит по 3 пикселя к ширине и высоте кадра так, чтобы можно было произвести разбиение на сегмен­ты. При этом добавленные области во Flash не будут видны, хотя раз­мер файла немного увеличится.

Настройка

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

• спокойный фоновый звук с тяжелыми басами; звуки пиканья для анимации текста;

щелчки,Тяжелый и медленный ритм ударных для основной части сайта;

• скрипучий металлический звуковой сигнал для кнопок;

• тяжелый и громкий (кричащий) ритм ударных для видео;

• более «спокойный» вариант этого ритма для замедленного показа.

и,: ʃ,ʊ:

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

У меня есть большая коллекция звуковых сигналов, собранных из разных дисков и бесплатных файлов, скачанных из сети. Есть множе­ство сайтов, которые бесплатно предлагают различные звуковые эффек­ты и музыку, но будьте осторожны — если сайт позволяет бесплатно скачать что-то, то это вовсе не означает, что у него обязательно есть раз­решение на распространение. Используя такой звук в своем проекте, вы можете понести ответственность за его использование. Так что луч­ше все-таки семь раз отмерить, а уж потом резать.

Другой вариант — приобрести подходящий микрофон и софт для работы со звуком. Почему бы самому не создать все эффекты? Сколько душе угодно. Я использую Sound Forge для записи и обработки сигна­лов, и Acid Pro — для создания музыки. Демо-версии обоих программ можно получить на сайте компании Sonic Foundry Www. sonicfoundry. com/downloads. Более подробные сведения о работе со звуком можно найти в главах 6 и 7.

Как правило, создание звуковых эффектов происходит не строго по намеченному плану, и они могут звучать не в точности так, как хотелось бы, но это только на данном этапе работы.

Заключение

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

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

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

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

глава
внутри flash

Краткое содержание главы:

• как организовать фильм Flash, используя Абстракцию;

• как импортировать видео во Flash;

• как использовать ActionScript для создания Динамического Видеопро­игрывателя Flash.

И вот, наконец, наступил момент, которого вы так ждали — пора откры­вать Flash и начинать обработку. К сожалению, должен вас разочаро­вать, все еще рано. Перед этим мы снова должны взять ручку с бумагой и подумать о структуре проекта.

Есть масса различных способов структурирования проекта, и выбор, зачастую, определяется индивидуальными предпочтениями и уровнем владения Flash. Например, я могу пойти двумя путями, чтобы достичь одинакового результата. Остается определить, какой из них лучше, и в этом лучше всего опираться на собственный опыт.

Что я имею в виду? Возможно, вы новичок во Flash и не имеете за спиной опыта, поэтому попробую объяснить. Самым очевидным крите­рием выбора является стремление получить один большой файл Flash, содержащий группу клипов. В этом случае планирование оказывается минимальным, и именно поэтому многие решают идти по данному пути. Однако и он имеет свои трудности. Так что, если вы не обладаете опы­том работы во Flash, можете позаимствовать мой.

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

Для примера представьте такую ситуацию. Через полгода после со­здания проекта заказчик, то есть владелец парка, снабжает меня обиль­ным новым съемочным материалом с просьбой обновить рекламный ролик. Я, разумеется, располагаю небольшими средствами для этого, поэтому начинаю искать способы сделать это как можно эффективнее. Я снова открываю свой файл Flash, который я не трогал все это время. На открытие файла мой бедный компьютер тратит добрых десять ми­нут, а затем его скорость падает до скорости торопящейся на обед улит­ки. А все из-за того, что видео увеличило файл до гигантских размеров. Каждый раз при экспорте его в сеть на это также будет уходить порядка десяти минут, так как будет происходить сжатие всех звуковых элемен­тов (включая саундтреки). Это может стать просто ночным кошмаром, от которого не можешь проснуться. Поэтому мы пойдем другим путем.

Мы воспользуемся концепцией, которую я называю «абстракцией».

Абстракция

Легендарный джазовый басист, Чарльз Мингус, как-то сказал: «Делать из простых вещей сложные легко, делать из сложных вещей простые ужасно легко, это и есть творчество».

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

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

Поэтому старайтесь разбить проект как можно больше. Возможно, это вас удивит, но в большинстве сложных сайтов, в разработке кото­рых я принимал участие, к файлам Flash применялась именно такая стра­тегия их упрощения — из простых элементов разными хитроумными способами комбинировались сложные интересные вещи.

8 — Flash MX Video

Только, пожалуйста, не нужно паниковать по поводу того, что вся эта структуризация файлов вам не по зубам. Абстракция это довольно про­стой прием, для понимания которого нужно совсем немного времени. Зато, усвоив его, вы в дальнейшем сэкономите гораздо больше этого же драгоценного времени и других средств.

Структура Flash

Теперь попробуем всю эту теорию применить для создания рекламного ролика парка. Если не применять планирование структуры проекта, то мы придем к наиболее очевидной прямолинейной последовательности, показанной на рисунке

Г Livi Skatepark Promo

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

Я не буду здесь описывать, как создать такую структуру. Есть мно­жество других хороших книг о Flash, в которых это можно узнать. Я пред­лагаю вам пойти вместе со мной по другому пути: просто немного поду­мать перед принятием решения и постараться сэкономить время, деньги и нервы. Вы ведь не застрахованы от того, что примерно за неделю до завершения вами работы не заявится заказчик с просьбой вставить в проект еще 200 новых роликов?

Центральным элементом рекламного ролика являются видео клипы и интерфейс для их выбора и просмотра. Кроме того, я хочу создать ани­мацию вводной части и сделать список разработчиков проекта. Вот и все.

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

У рассмотренной нами простой структуры есть один недостаток: если кому-то захочется просмотреть сразу шестой клип, ему придется подож­дать, пока не загрузятся предыдущие пять. А поскольку при работе с файлами видео скорость компьютера заметно падает, то такое ожида­ние может быть довольно утомительным. Теперь представьте, что бу­дет, если есть 60 клипов, и нужно просмотреть только последний из них. Весело, не правда ли?

Пора начинать

Во Flash можно с одного фильма загружать другие. Это не так сложно, как может показаться с первого раза. Просто есть какой-то «базовый» файл, содержащий код и кнопки интерфейса для выбора и запуска ос­тальных клипов, но не сами эти клипы.

Откройте файл Video_Base.Fla (содержащийся в группе файлов к дан­ной главе) с примером использования описанного способа.

На что вы обратили внимание, прежде всего? Во временной шкале находится только одна сцена с одним кадром. Это может идти вразрез с вашим прошлым опытом работы или тем, чему вы научились из других книг, но по мере продвижения в сторону объектно-ориентированного дизайна и программирования во Flash MX (более подробно об этом го­ворится в главе 11) все станет на свои места. Оставайтесь с нами, и мы покажем вам звезды.

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

Подготовка к видео

Итак, что у нас есть в этом файле? Две рамки, одна из которых пустая, а вторая содержит пару кнопок с надписями Видео 1 и Видео 2. При разме­щении в сети я создаю файл SWF, размер которого не будет превышать 1 Кб. И это не удивительно, если учесть его простоту. Однако простой не значит бессодержательный. Давайте вместе пройдем стадии создания файла Video_Base.Fla, обращаясь, когда это потребуется, к оригиналу.

1. Откройте новый фильм Flash, назовите его Video_Base.Flaa сохраните.

2. Добавьте два новых слоя и задайте всем трем названия (по порядку) Video, Buttons и Boxes.

На слое Boxes размещены рамки, создающие фон для будущего про­игрывателя. Левая колонка будет содержать кнопки выбора видео­клипов, а в правой будет происходить воспроизведение выбранного клипа.

В’

3. Нарисуйте свои рамки или скопируйте наши. Толщина рамок 10 пик­селей, поэтому если формат изображения выбран 360×360, то правая рамка будет иметь размеры 380×380.

4. На слое Buttons мы создадим две кнопки. Во-первых, нарисуйте кноп­ку для Видео 1. Можете при этом не ограничивать свою фантазию, однако мы выбрали просто слово «VIDEO 1».

5. Щелкните на кнопке и нажмите клавишу F8 для преобразования ее в символ. В появившемся окне введите название «vidl But» и в поле Поведение установите кнопку выбора Кнопка.

6. Вернитесь на временную шкалу, выберите кнопку VIDEO 1 и на па­нели Действия (Actions) введите следующий код:

On (release) {

IoadMovie ("video1 .swf", "videomc");

I

Этот код означает, что когда кто-то щелкнет на созданной нами кноп­ке, Flash загрузит для воспроизведения файллздео 1. swf в области для клипов, которую мы назовем vi deo_mc.

7. Сделайте копию символа vid IBut, назвав его <<vid2But>>.

8. Придайте кнопке желаемый вид и перенесите ее под кнопку VIDEO 2 в первой рамке.

VIDEOI VIDEO 2

9. Выделите символ vid2But, откройте панель Действия и введите сле­дующий код ActionScript:

On (release) {

IoadMovie ("video2.swf", "videojnc");

I

Как видно, в коде изменилось только название файла SWF, который также будет воспроизводиться в области video_mc. Давайте созда­дим ее.

10. Создайте новый клип, назовите его «emptyMovieClip», ничегокнему не подключая. Совсем ничего.

11. Вернитесь к основной временной шкале и перенесите копию emptyMovieClip в область, соответствующую слою video. Подгоните верхний левый угол с таким же внутренним углом правой рамки. На панели Параметры (Property) задайте название соответствующей копии video_mc.

Этим указанием угла пустого клипа мы определили область, в кото­рой будет воспроизводиться видео. Теперь нужно создать наши видео­файлы. Ранее мы задали размеры пустой рамки, поэтому формат изоб­ражения в файлах должен быть таким же, то есть 360×360.

Сборка

Мы уже приготовили клипы, подогнав в них высоту и ширину кадра, осталось их импортировать. Размер файла, используемого мною в при­мере, очень велик, поэтому можете воспользоваться своим, не таким большим, или скачать мой в Библиотеке video 1 .fla.

1. Создайте новый файл Flash, укажите размеры 360×360 и частоту 25 кадров в секунду или любую другую, соответствующую частоте ва­шего клипа.

2. Сохраните файл под названием video 1 .flaв той же папке, где нахо­дится файл video_base. swf.

3. Выделите кадр 1 и щелкните на пункте Импорт в меню Файл. Выбе­рите видеофайл и в открывшемся диалоговом окне щелкните на ко­манде Внедрить видео в документ Flash (Embed video in Macromedia

Flashdocument).

4. Все остальные параметры в окне Параметры импорта видео (Import Video Settings) оставьте по умолчанию и нажмите ОК.

Помните, что во Flash в данное время используется кодек Sorenson Spark для сжатия исходного файла в новый формат видео. Это преоб­разование может занять немало времени, а вы сходите за чашечкой чая и вооружитесь каким-нибудь журналом, пока не увидите такое диалоговое окно:

5. Нажмите кнопку Да, при этом откроется первый кадр временной шкалы. Если он смещен, установите правильные координаты на па­нели Свойства, также можете установить ширину и высоту кадра.

6. Осталось установить звук. В меню Файл выберите пункт Общие па­раметры (Publish Settings) и в открывшемся окне перейдите на вкладку Flash. В поле Аудиопоток (Audio Stream) указаны текущие парамет­ры звука, для их изменения нажмите кнопку Изменить.

7. Установите показанные на рисунке значения, помня при этом, что чем выше качество, тем больше размер файла и тем больше времени

Потребуется для его загрузки. Мы установим параметры МРЗ, 64 kbps, Стерео. При импорте Flash преобразует видео, но не звук, сжатие саундтрека произойдет при экспорте SWF файла.

Имейте в виДу, что выбор параметра Стерео Для звука, записанного в формате МРЗ, не увеличивает размер файла, так как при таком сжа­тии просто сохраняется различное звучание Для правого и левого кана­лов. Учитывая то, что, как правило, в видеофайлах записывается оди­наковый звук Для обоих каналов, использование этой возможности при преобразовании может быть очень полезным.

8. В окне Общие параметры перейдите на вкладку Форматы и снимите флажок HTML. Мы не собираемся создавать HTML-страницу, состо­ящую только из нашего ролика, поэтому все, что нам нужно — это файл в формате SWF.

9. Теперь можно публиковать фильм.

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

10. Итак, посмотрим, что получилось. Нажмите кнопку VIDEO 1.При этом пустой клип video_mc будет заменен нашим файлом videol. swf, и начнется его воспроизведение.

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

Теперь нажмите кнопку VIDEO 2 и убедитесь, что при этом видео от­ключается. Проигрыватель пытается выполнить нашу команду, то есть загрузить файл video2.swfl который мы еще не создали. Это будет ва­шим следующим заданием — составить файлы SWF (с кнопками) для каждого фильма, который мы планируем использовать.

Надеюсь, вы уже поняли, насколько выгодно применение абстрак­ции при планировании. Мы можем предоставить пользователю возмож­ность самому выбирать для просмотра фильмы из тысяч, имеющихся в списке, и самому устанавливать порядок их воспроизведения, а не сле­довать строго назначенному нами порядку в файле Flash.

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

Бразды правления

Давайте добавим немного функциональности. Предоставим пользова­телю средства управления, которыми обладают стандартные проигры­ватели:

• перемотать вперед;

• перемотать назад;

• воспроизвести;

• остановить.

Самый очевидный способ сделать это — просто поместить соответ­ствующие кнопки на каждый используемый клип. Это хорошая идея, но не лучшая. Возникает уже известная нам проблема: при увеличении числа клипов объем работы становится пугающим.

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

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

Таким образом, план наших дальнейших действий таков. Непосред­ственно видеофайлы оставляем без изменений в их первозданной не­винности. Все кнопки управления размещаем на уже известном нам базовом фильме. Если нужно добавить или удалить какой-то из пара­метров управления, то нам придется сделать это всего один раз с фай­лом незначительного размера. Следовательно, его экспорт займет на­много меньше времени.

Начало и остановка воспроизведения

Перед тем как набрасываться на работу, откройте φaiiΛVideo-base-2.swf и пощелкайте кнопками, имитирующими управление обычным проиг­рывателем. Примерно то же самое мы должны получить в итоге.

1. Откройте файл video_base. fla и измените слой boxes, как показано на рисунке. Не забудьте, что под видео должно по-прежнему остать­ся пространство размером 360×360.

2. Создайте пять новых кнопок и поместите их на кадр 1 слоя buttons. Их внешний вид, как и в случае с кнопками выбора клипа, я решил сделать максимально скромным — прямоугольник с текстом.

3. Щелкните на кнопке PLAYи введите на панели Действия следующий код:

On (release) { video mc. play ();

1

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

Первая часть, videojnc, подсказывает Flash, что я обращаюсь к объек­ту видео (вы, наверняка, помните, что мы дали такое название «пусто­му» клипу, вместо которого будут загружаться конкретные клипы).

Следующая часть — это точка, говорящая о том, что все, за ней сле­дующее, относится непосредственно Можно сказать, что

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

Третья часть состоит из play(). То есть событие, которое должно про­изойти, это воспроизведение video__mc.

Можно прочитать строку наоборот, и получится «play video», то есть именно то, чего мы хотим от данной кнопки. Как видите, все очень про­сто. Смысл том, что мы дали копии пустого клипа название Videojncи можем оперировать с ним по своему усмотрению.

4. Теперь по аналогии подключим к кнопке STOP такой код:

On (release) { video mc. stop ();

}

Как видите, все по-прежнему так же просто, но вместо воспроизве­дения video_rnc мы даем команду его остановки.

Перемотка вперед, назад и замедленный показ

Теперь, когда у нас есть сравнительно простые кнопки начала и останов­ки воспроизведения, попробуем создать их более интересных собратьев.

На первый взгляд, к кнопке FWD в файле video_base_2.fla подклю­чен гораздо более сложный код, нежели к PLAY и STOP. Но это только на первый взгляд, он намного проще, чем кажется.

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

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

On (press) {

Video mc. OnEnterFrame = function () {

Video mc. gotoAndStop (video mc. currentframe + 5);

I;

}

Давайте посмотрим, что мы написали. Говоря техническим языком, мы воспользовались функцией обратного вызова. Постараюсь вкрат­це объяснить, что это значит.

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

С помощью второй строки мы подключаем к клипу «фикцию». Фун­кция представляют собой составную часть программного кода, по­зволяющую увеличить функциональность (несмотря на тавтологию) , в данном случае, перематывать видео вперед. Обратите внимание, что она выполняется под значением OnEnterFrame, то есть применяется к каждому кадру нашего фильма.

В следующей строке мы записали непосредственно функцию, то есть само выполняемое действие. Выражение video_mc. gotoAndStop оз­начает: перейти в клипе на определенный кадр и остановить показ. Далее записано (video_mc. Currentframe +5), этим мы указали, что нужно перейти на пять кадров вперед, то есть к текущему кадру при­бавили 5. Таким образом, мы сымитировали ускоренную перемотку.

2. К введенному коду добавим следующий, прекращающий перемотку, когда кнопку отпускается:

On (release) {

Videojnc. onEnterFrame = null; video_mc. play ();

}

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

Вторая строка дает команду окончания выполнения функции пере­мотки.

Последняя строчка вам уже известна из кода для кнопки PLAY. Она вновь запускает воспроизведение фильма в обычном режиме.

3. Теперь написать код для кнопки RWD будет легко:

On (press) {

Video_mc. OnEnterFrame=function () {

Video mc. gotoAndStop (video me. Currentframe — 5);

};

}

On (release) {

Videojnc. onEnterFrame = null; video mc. play ();

}

Никаких проблем, не правда ли? Единственное отличие, как и следо­вало ожидать, в том, что теперь при выполнении функции перемотки осуществляется переход с текущего положения на пять кадров назад.

4. И, наконец, кнопка SLOW. Мы хотим, чтобы воспроизведение осу­ществлялось в три раза медленнее, чем в нормальном режиме, пока пользователь удерживает левую кнопку мыши нажатой и изучает новый для себя трюк асов из парка. На панели Действия добавьте к кнопке SLOW следующий код:

On (press) {

Video_mc. stop (); counter = 0;

Videojnc. onEnterFrame = function (){ counter

If ((counter % 3) == O) { video _mc. nextFrame();

On (release) {

Video jnc. onEnterFrame = null; video_mc. play();

} ^

Некоторые операторы вам уже знакомы. Мы по-прежнему указыва­ем, что функция должна выполняться в течение того времени, пока кноп­ка нажата; как только кнопка отпускается, применение функции пре­кращается. Фактически, команда остановки выполнения функции записана так же, как и для кнопок FWD и REW.

Код, выполняемый при нажатом положении кнопки, немного слож­нее. Он начинается так же:

On (press) {

Как и раньше, мы хотим, чтобы при нажатии и удерживании кнопки происходило определенное событие.

Video mc. stop ();

Этим событием является остановка воспроизведения, поэтому соот­ветствующая команда аналогична коду для кнопки STOP.

Counter = 0;

В следующей строке мы объявляем переменную counter и присваи­ваем ей значение 0. Говоря проще, мы создали счетчик и установили его в начальное (нулевое) положение.

Video mc. OnEnterFrame = function (){

Этой строчкой мы указали, что, каки в случае С кнопками FWD и REW, к каждому кадру клипа будет применяться функция

Counter ++;

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

If ((counter % 3) == O) { videojnc. nextFrame();

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

Если вам интересно знать более подробно, как осуществляется за­медленный показ, то можно дать такое объяснение. С каждым следую­щим кадром значение счетчика возрастает на единицу, принимая зна­чения 1, затем 2, затем 3 и так далее. После увеличения вычисляется число counter % 3.

Дело в том, что хорошо известный нам знак процента в мире ActionScript живет двойной жизнью. Вторая, новая длянас, его сущность выражается в том, что он исполняет роль модуля. То есть написанием данного символа мы даем команду вычислить остаток от деления одного числа на другое. Например, выражение 5 % 3 означает нахождение ос­татка от деления 5 на 3, результат — 2. Таким образом, в нашей функции производится переход от текущего кадра к следующему каждый раз, когда остаток от деления его номера на 3 равен нулю. Это будет проис­ходить с каждым третьим кадром (т. е. 3, 6,9,12 и т. д.). Это самый эффек­тивный способ решения подобного рода задач.

Теперь можете экспортировать фильм, открыть файл SWF и насла­диться плодами своих нелегких трудов. Проект почти завершен…

о macromedia flash pjaper 6,y⅛w cortid uete,vtdeoi video 2,puv s10wfwd

Заключение

Многое из написанного в этой главе может показаться странным и не­похожим на ранее известные вам приемы программирования. Я старал­ся показать, насколько ActionScript просто и логично позволяет достичь цели. Во Flash есть множество способов решения задач, и выбранный нами далеко не всегда оказывается оптимальным.

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

Может быть, данная глава получилась излишне технической, но срав­ните полученные нами в итоге файлы с тем, что вы делали во Flash ра­нее. То, что вас пугает сложностью, на самом деле отличается простотой и строгостью устройства. Подумайте, что мы смогли создать таким спо­собом. По-моему, замечательный результат!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *