46578 (588404), страница 10
Текст из файла (страница 10)
Что такое выравнивание текста, вы знаете. Но о выравнивании графических фрагментов, наверно, слышите впервые.
Однако и графику часто бывает необходимо выровнять, скажем, по верхней стороне листа или по правой стороне самого правого фрагмента в выделенной группе. Часто выполняется также центрирование выделенных фрагментов по горизонтальной или вертикальной оси.
Выравнивание графики выполняется с помощью панели Align. Чтобы вызвать ее на экран, выберите пункт \N?,!, меню Window или нажмите комбинацию клавиш
Изменение размеров
Вы уже узнали, как можно изменить размеры графического фрагмента. Для этого достаточно указать новые значения в полях ввода W и Н, находящихся в редакторе свойств и на панели Info, и нажать клавишу
Если у вас нет на экране инструментария, и, таким образом, кнопка модификатора "изменение размеров" недоступна, вы можете воспользоваться меню. Для этого вам даже не нужно будет выбирать инструмент "трансформатор". Просто выберите пункт-выключатель Scale подменю Transform меню Modify. Также вы можете выбрать пункт Scale контекстного меню выделенного фрагмента.
Вращение и сдвиг.
Вращение и сдвиг выделенного графического фрагмента осуществляются также с помощью инструмента "трансформатор". Однако модификатор для этого используется другой - "вращение и сдвиг". Кнопка, с помощью которой он включается, показана на рис. 9.12. Вы также можете выбрать пункт-выключатель Rotate and Skew в подменю Transform меню Modify или одноименный пункт контекстного меню выделенного фрагмента.
Выделенный фрагмент графики будет иметь при этом вид, такой же, как при выбранном модификаторе "изменение размеров". Он снова вписан в прямоугольник выделения, на углах которого расположены такие квадратные маркеры поворота, а на сторонах - маркеры сдвига.
Чтобы повернуть фрагмент, перетащите мышью один из угловых маркеров, не важно, какой. Если вы хотите повернуть фрагмент на угол, кратный 45°, то при перетаскивании маркера удерживайте нажатой клавишу
В центре прямоугольника, в который вписан ваш фрагмент, находится белая точка. Это центр вращения фрагмента, вокруг него осуществляется поворот. (Его также называют точкой фиксации.) Вы можете перетащить его в другое место, даже вынести за пределы прямоугольника. Чтобы вернуть его обратно в центр фрагмента, дважды щелкните по нему мышью.
Если вам нужно быстро повернуть выделенный фрагмент на 90°, воспользуйтесь меню. Пункт Rotate 90° CW в подменю Transform меню Modify поворачивает фрагмент на 90° по часовой стрелке, а пункт Rotate 90° CWW - против часовой стрелки. Вместо выбора этих пунктов вы можете нажимать комбинации клавиш
И, конечно же, вы можете повернуть или сдвинуть фрагмент, воспользовавшись панелью Transform. Выведите ее на экран. После этого включите переключатель Rotate и введите в расположенное справа от него поле ввода нужный угол поворота. Чтобы выполнить сдвиг, вам нужно будет включить переключатель Skew и ввести в расположенные справа от него поля ввода нужные углы сдвига: горизонтального - в левое поле ввода, вертикального - в правое. Теперь остается нажать клавишу
Свободная трансформация
Если при выбранном инструменте "трансформатор" не включен ни один модификатор, то фактически все эти модификаторы включены одновременно. В этом случае говорят о так называемой свободной трансформации. При свободной трансформации вы можете, как угодно изменять выделенный графический фрагмент, не заботясь о том, какой модификатор нужно включить. Однако для того, чтобы применить к выделенному фрагменту требуемое преобразование, следует очень точно позиционировать курсор мыши над нужным маркером.
Чтобы выбрать свободную трансформацию, проще всего отключить все кнопки-выключатели, "ответственные" за модификаторы инструмента "трансформатор". Все эти кнопки находятся в области Options инструментария, Также вы можете выбрать пункт Free Transform подменю Transform меню Modify или контекстного меню выделенного фрагмента.
Чтобы выполнить то или иное преобразование, поместите курсор мыши над нужным маркером прямоугольника выделения. Курсор мыши примет при этом "говорящую" форму. Скорее всего, вам придется некоторое время подвигать курсор возле разных маркеров, прежде чем он примет нужную форму. После этого "захватите" маркер и переместите его на новое место, как и в случае других модификаторов.
По нашему мнению, свободная трансформация более пригодна для достаточно опытных художников. Начинающим же будет очень полезно потренироваться, чтобы овладеть этим мощным инструментом Flash MX.
Глава 10. Образцы и библиотеки. Проводник Flash
В предыдущих главах мы много рисовали, редактировали, стирали, модифицировали, преобразовывали, импортировали, в общем, не теряли времени даром. В этой главе мы рисовать не будем, Хватит, научились и рисовать, и править нарисованное, и стирать ненужное. Поговорим об управлении графикой. Да-да, именно так: будем учиться управлять нашей графикой.
А именно, преобразовывать графические фрагменты в образцы и помещать их в библиотеки. А впоследствии извлекать нужный образец из библиотеки и создавать экземпляры этого образца на рабочем листе. Ну и, конечно, управлять содержащимися в библиотеке экземплярами: править, удалять и т. п.
Но зачем? Кому нужны эти библиотеки и образцы? Зачем нам эта лишняя головная боль?
Давайте возьмем гипотетическое изображение Flash, содержащее множество мелких одинаковых элементов. Не будем придумывать, что это за изображение, просто представим себе его. Каждый его элемент описывается некоторым набором графических примитивов, а, значит, занимает место в памяти и на диске. Десять таких элементов занимает в десять раз больше места, сто элементов - в сто раз больше и т. п. Представляете, во сколько раз увеличится результирующий файл Shockwave/Flash?
Теперь давайте рассуждать так. Что представляет собой этот огромный файл? Повторяющийся набор описаний абсолютно одинаковых элементов - и больше ничего. Мы описываем много раз одно и то же! Нельзя ли нарисовать этот повторяющийся элемент один раз, а потом просто ставить в нужных местах ссылку на его описание? В этом случае мы сэкономим уйму места: ссылка на описание графического элемента занимает несравнимо меньше места, чем сам этот графический элемент. Возможно, ли такое сделать во Flash?
Конечно. Если бы не было возможно, мы бы об этом не говорили. В этом случае описание графического элемента помещается в особое хранилище, называемое библиотекой, а сам этот элемент получает название образца(в терминологии Flash - symbol).
Каждому образцу дается при создании уникальное имя, по которому его можно опознать, и определенный тип, задающий его свойства.
Теперь в нужном месте на рабочем листе мы ставим ссылку на этот образец, создавая тем самым экземпляр образца или просто экземпляр (в терминологии Flash - instance).
Такой подход имеет еще одно преимущество. Вы можете изменять все экземпляры одного образца, просто отредактировав этот образец в библиотеке.
После этого Flash сам обновит все экземпляры. Видите, как удобно? Единственный недостаток: вы не сможете изменять созданный таким образом экземпляр так же свободно, как обычную графику. Но этим во многих случаях можно пожертвовать, не так ли?
Более того - вы можете менять некоторые параметры этого экземпляра. Например, сменить его цвет, прозрачность, повернуть его, исказить или изменить его размеры. И, тем не менее, он останется экземпляром. Если вы отредактируете образец в библиотеке, этот измененный экземпляр также обновится.
Все файлы, что вы импортировали в документ Flash, кроме изображений формата Shockwave/Flash, также оказываются в библиотеке. Все изображения и фильмы, созданные в других программах, все звуки оказываются там и превращаются в образцы. (Кроме изображений в формате Shockwave/Flash - эти помещаются прямо на рабочий лист, и вам придется вручную добавить их в библиотеку.) Это очень удобно: вы можете помещать экземпляры импортированного изображения или звука на лист сколько угодно раз, а размер файла при этом увеличиваться не будет. (Хотя, конечно, все-таки увеличится - при самом импорте.)
Flash также позволяет вам создавать разделяемые библиотеки. Такие библиотеки вы можете выкладывать в Интернет, чтобы другие пользователи Flash могли использовать их содержимое. При этом проигрыватель Flash, загрузив изображение, в котором был использован образец из разделяемой библиотеки, автоматически загружает файл библиотеки и извлекает из нее нужный образец. Таким образом, размер файла Shockwave/Flash уменьшится еще сильнее. Однако если проигрыватель Flash не сможет загрузить файл разделяемой библиотеки, изображение не будет показано правильно.
А напоследок мы поговорим о мощном инструменте организации вашей Flash-графики. Это так называемый Проводник Flash, аналогичный по назначению Проводнику Windows. С его помощью вы сможете быстро отыскивать образцы, экземпляры и прочие графические элементы, содержащиеся в вашем творении.
Типы образцов
Flash поддерживает непосредственное создание образцов трех различных типов. Тип образца задается при его создании и впоследствии может быть изменен. Каждый из этих типов обладает своими особыми свойствами и имеет свою особую область применения. Давайте их перечислим и опишем, дав в скобках наименование, принятое в терминологии Flash.
Графический образец (graphic) представляет собой обычное сГатичное или ани-мированное изображение, сделанное во Flash или импортированное из другой программы. Это, вероятно, наиболее часто используемый тип образцов.
Образец-кнопка (button) • - это особый образец, представляющий собой обычную командную кнопку. Такие образцы используются для создания графического пользовательского интерфейса для написанных на Flash программ и рассматриваются во всех подробностях в главе 20.
Образец-клип (movie clip) представляет собой настоящий фильм, созданный во Flash или другом программном пакете, импортированный в текущий документ Flash и помещенный на рабочий лист как часть изображения. Такой образец "работает" совершенно независимо от основного изображения, частью которого является. Образцы-клипы применяются для создания очень сложной анимации. Кроме того, по сравнению с графическими образцами, образцы-клипы предоставляют дополнительные возможности для программирования своего поведения, поэтому часто используются при создании пользовательского интерфейса. Мы изучим образцы-клипы во время рассмотрения создания анимации в среде Flash (часть 3 книги).
Flash предоставляет также возможность переопределить тип на уровне не образца, а экземпляра. Это значит, что вы можете поместить на лист экземпляр какого-либо образца и переопределить его - экземпляра - тип; тип образца при этом не изменится. Сейчас это не принесет нам пользы, но в дальнейшем, при изучении анимации и программирования (части 2 и 5), может пригодиться.
Кроме перечисленных выше трех типов, Flash поддерживает еще три: образец-растровое изображение (bitmap), образец-звук (sound) и образец-импортированный клип (embedded video). Их также собирательно называют импортированными образцами. Как вы уже поняли, образцами-растровыми изображениями становятся импортированные в документ растровые изображения, а образцами-звуками - импортированные звуки. Эти два типа образцов не могут быть созданы непосредственно во Rash, в отличие от графических образцов, кнопок и образцов-клипов.
Глава 11. Публикация и экспорт статичной графики.
При публикации Flash не просто сохраняет изображение в другом формате. Он также выполняет весьма сильную оптимизацию, удаляя ненужные цвета, "обрезая" лишнее пустое пространство, сжимая массив точек согласно выбранному вами алгоритму. Благодаря этому графический файл, подготовленный для распространения в Интернете, по электронной почте или иным способом, имеет минимальный размер.
Кроме публикации, вы можете выполнить экспорт изображения. Экспорт отличается от публикации тем, что при создании изображения Flash не проводит никакой оптимизации. Поэтому экспортированные файлы плохо подходят для распространения графики, но зато прекрасно редактируются в других графических программах.
Давайте рассмотрим публикацию и экспорт изображений Flash.
Выбор формата публикации
Но, прежде всего, давайте выясним, в каком формате мы будем распространять наше творение. Правильный выбор формата публикации в данном случае решает многое. В самом деле, если вы выберете для распространения изображения какой-нибудь малоупотребительный формат, мало кто сможет его просмотреть. Поэтому нужно ориентироваться на самые популярные форматы графики.
Практически всегда неподвижные, статические изображения сохраняются для дальнейшего распространения в двух форматах: GIF и JPEG. В последнее время, в связи с событиями вокруг формата GIF, постепенно, хотя и очень медленно, набирает популярность формат PNG. (Иногда используется также формат BMP и некоторые другие, но довольно редко.)
Вы, конечно же, заметили, что все три этих формата - растровые. Растровая графика традиционно лидирует, когда дело доходит до распространения изображений. Это происходит потому, что растровая графика требует существенно меньше системных ресурсов для вывода ее на экран. Конечно, она проигрывает векторной в возможности обработки, но скажите честно, вы часто занимаетесь тем, что вращаете, искажаете и перекрашиваете полученные из Сети картины в стиле "фэнтези"? Вы их просто смотрите, не так ли?
Векторная графика, в отличие от растровой, используется практически только при создании изображений. Точнее, использовалась, пока не появился пакет Macromedia Flash и, вместе с ним, одноименный формат векторной графики, предназначенный именно для ее распространения. Можно сказать, что Flash осуществил прорыв, принес векторную графику конечному потребителю графических изображений. Но даже графика Flash имеет достаточно узкую область применения, остальные области прочно удерживает за собой растровая графика.
Так какой же формат выбрать? На каком из них остановиться?
Формат GIF, как вы уже знаете из главы 4, прекрасно подходит для сохранения и распространения штриховых рисунков с небольшим количеством цветов, таких, как схемы, карты, карандашные рисунки, элементы оформления Web-страниц и т.п. При сохранении графики в формате GIF выполняется сжатие массива данных по алгоритму, исключающему потери данных. Так что файлы GIF получаются весьма компактными.
Формат PNG - прекрасная альтернатива GIF. Он особенно хорош тем, что разработан группой независимых исследователей и абсолютно бесплатен. GIF же - увы! - стоит денег. Фирма UniSys, владеющая патентом на алгоритм сжатия, на редкость некстати вспомнила об этом. Так что если вы озабочены возможным переходом формата GIF в разряд платных продуктов, сохраняйте свою графику в файлах PNG. Тем более, что PNG предоставляет несравнимо больше "наворотов", чем старенький GIF.
Предварительный просмотр публикуемой графики
Flash предоставляет возможность просмотреть публикуемый файл перед собственно публикацией. Для этого выберите пункт Publish Preview в меню File. Откроется подменю, содержащее несколько пунктов, соответствующих каждому формату публикации, который вы выбрали. Если вы выберете один из этих пунктов, Flash выполнит экспорт вашего изображения в соответствующем формате и тут же откроет его в программе, зарегистрированной для этого типа файлов. Для файлов GIF, JPEG и PNG такой программой будет установленный на вашем компьютере Web-обозреватель. Когда вы закроете эту программу, созданный Flash файл будет удален.
Вы также можете быстро просмотреть результаты экспорта изображения в так называемый формат по умолчанию. Таким форматом Flash считает тот, что выбран в окне Publish Settings (см. рис. 11.1) первым, если считать сверху вниз. В нашем случае таким форматом будет GIF. Чтобы просмотреть опубликованное в таком формате по умолчанию изображение, выберите пункт Default - () в подменю Publish Preview меню File или нажмите клавишу
Экспорт изображения
Напомним, чем отличается публикация от экспорта. При публикации результирующее изображение максимально оптимизируется, чтобы достичь максимального качества отображения и минимального размера файла. Такое изображение может передаваться по компьютерным сетям, электронной почте, на дискетах и другими путями, выводиться на экран и распечатываться. Редактирование подобного изображения в других графических программах обычно не предусматривается. При экспорте, наоборот, изображение подготавливается именно к правке в других программах, поэтому оптимизация не проводится.
Как правило, любое изображение, созданное в любой программе векторной графики (не только Flash), требует дополнительной правки. Поэтому, вероятно, не стоит сразу публиковать его, а лучше, сначала экспортировать и подправить в другой программе.
ЧАСТЬ III. РАБОТА С АНИМАЦИЕЙ
Глава 12. Форматы анимированной графики и видео.
История компьютерного видео насчитывает всего лет десять. И это понятно: чтобы хранить полноразмерные фильмы, нужно очень много дискового пространства, а чтобы его нормально обрабатывать, нужны исключительно мощные компьютеры. Если вы смотрите фильмы в формате MPEG 4 (это могут быть как фильмы на дисках DVD, так и фильмы, записанные на обычных CD в формате DivX), то знаете, что, не имея современного компьютера, о компьютерном видео лучше забыть. Иначе вы рискуете смотреть не фильм, а слайд-шоу со скоростью один кадр секунд этак в пять.
Как раз десять лет назад появились достаточно быстродействующие компьютеры и достаточно емкие жесткие диски, чтобы обрабатывать и хранить компьютерное видео. И именно в то время возникло понятие "мультимедиа" (multimedia), обозначавшее совокупность текстовых, цифровых, звуковых и видеоданных, объединенных в единое целое.
Давайте выясним, почему для хранения и обработки видео нужно больше ресурсов, чем для обычной компьютерной графики. Вероятно, вы знаете, что кино- или видеофильм можно представить как набор множества неподвижных изображений (кадров), очень быстро, несколько раз в секунду, сменяющих друг друга. Так как человеческий глаз не может уследить за сменой одного изображения другим, субъективно этот непрерывный "поток" изображений выглядит как одна движущаяся картинка. Для достижения такого эффекта частота кадров фильма должна быть довольно велика.
Каждый фильм фактически представляет собой огромное количество статичных изображений. Чтобы сохранить их в цифровом виде, нужен носитель весьма большой емкости. Поэтому для сохранения фильмов используют алгоритмы сжатия с потерями. Но здесь первопроходцев компьютерного кино подстерегает другой подводный камень: для распаковки таких фильмов и вывода изображения на экран нужны огромные вычислительные мощности. А такие мощности появились в распоряжении рядовых пользователей только десять лет назад. Да и то, тогдашние фильмы не блистали качеством.
Вероятно, самым первым форматом записи фильмов был QuickTime, разработанный фирмой Apple для компьютеров Macintosh и позднее перенесенный на Microsoft Windows. Фирма Microsoft в ответ разработала программный пакет Video for Windows и формат записи фильмов AVI, позволяющий использовать различные алгоритмы сжатия. Несколькими годами позднее, когда мощности персональных компьютеров еще возросли, независимая группа MPEG разработала очень сильный для своего времени алгоритм сжатия MPEG 1. Именно в этом формате записывались диски VideoCD - первый и не слишком удачный опыт создать цифровое кино "для народа".
Вероятно, вы видели эти диски, не могли не видеть. VideoCD - это обычный компакт-диск, на который записывался один огромный файл формата MPEG 1 с расширением dat; на одном таком диске помещалось около часа видео, поэтому полноразмерные фильмы поставлялись на двух дисках. Качество видео было очень плохим, фильмы смотрели на компьютерах с помощью специальных программ, открывая их в маленьком окошке, или на особых проигрывателях, похожих на видеомагнитофоны. Бизнес по продаже дисков VideoCD был развит вольно сильно: автор припоминает, что видел в Волгограде магазин, торгующий фирменными дисками с отечественным кино. Но все, же VideoCD - один из тех многочисленных блинов, что, будучи первыми, выходят комом.
Настоящую жизнь компьютерному кино дали появившиеся во второй половине девяностых годов лазерные диски DVD. Эти лазерные диски высокой плотности позволяют записывать до 6 гигабайт информации, чего вполне хватает не только на полноразмерный фильм высокого качества, но и на несколько звуковых дорожек, интерактивные меню и прочие "бонусы". Для записи фильмов на такие диски используется алгоритм MPEG 2.
Существуют также альтернативные форматы записи видео на обычные компакт-диски. Разработан SuperVideoCO на который помещается до двух часов видео, сжатого по алгоритму MPEG 2 создан великий и ужасный DivX альтернативная реализация алгоритма MPEG 4 - позволяющий записывать полноразмерный фильм отличного качества на один CD. Эти форматы, в основном DivX, составляют серьезную конкуренцию DVD, будущее которого сегодня выглядит не так уж и безоблачно.
Покадровая и трансформационная анимация
Эти два способа создания движущегося изображения почти аналогичны двум разновидностям компьютерной графики Рассмотрим их подробнее.
Покадровая анимация
Покадровая анимация (ее еще называют классической) представляет собой набор изображений различных фаз движения - кадров, прокручиваемых с большой скоростью. Это самый старый и самый надежный способ сохранения движущегося изображения на каком-либо носителе (пленке, бумаге, магнитной ленте, жестком диске, CD). Пример покадровой анимации из пяти кадров показан на рис. 12.1.
Каждый из множества кадров, составляющих фильм, занимает при хранении определенное пространство на диске. Предположим, что это пространство составляет 100 килобайт - для хранения полноцветного изображения высокого разрешения в формате JPEG этого даже маловато. Теперь предположим, что таких изображений у нас 100 000 - такой длинный у нас фильм. Умножаем 100 на 100 000 и получаем 10 000 000, т. е. примерно 10 гигабайт. (Примерно, потому что гигабайт - это не 1 000 000 000, а 1 073 741 824 байт.) Выходит, для хранения фильма нам нужен целый жесткий диск, а уж сколько для этого понадобится компакт-дисков, просто страшно подумать. Этот фильм даже на DVD не влезет!
Что делать?
Конечно же, надо сжать фильм посильнее. И, если можно, сжать не только сами кадры, но и саму их последовательность, выбросив часть информации, без которой можно и обойтись. И, разумеется, сжать звуковое сопровождение.
Для сжатия фильмов используются специальные алгоритмы, реализующие сжатие с потерями. В этом случае при сжатии какая-то часть информации, не очень нужная при воспроизведении, действительно выбрасывается из фильма, за счет чего последний становится заметно меньше. Более того, эти алгоритмы анализируют каждый кадр фильма и сохраняют в результирующем файле только данные о разнице между соседними кадрами. Это еще сильнее уменьшает размер сжатого фильма.
Вот поэтому для сохранения покадровой анимации и применяются только растровые форматы. Если же сохранить такую анимацию в векторном формате, ее будет очень трудно, практически невозможно сжать с применение одного из обычно применяемых для этого алгоритмов. Да и процессорн ч ресурсов во время вывода на экран такая анимация будет потреблять значительно больше растровой.
Такие алгоритмы, как MPEG 4 и DivX, позволяют поместить полноразмерный фильм на обычный компакт-диск, т. е. размер сжатого с их помощью видеофайла составляет 600-720 мегабайт. Это уже вполне приемлемые параметры, учитывая объемы современных жестких дисков. Именно эти два алгоритма, как нам кажется, и совершили "компьютерно-киношную" революцию, создав высококачественное цифровое кино "для народа". То есть, сделали то, чего не удалось сделать VideoCD.
Но здесь возникает другая проблема. Сжатые сильными алгоритмами фильмы могут "осилить" только достаточно мощные компьютеры. Если вы попробуете просмотреть фильм DivX на компьютере пятилетней давности, то увидите не нормальный фильм, а слайд-шоу. Это происходит потому, что слабосильный процессор не успевает распаковывать данные и выдавать их на экран и поэтому вынужден пропускать целые кадры. К счастью, никому в голову не приходит запускать цифровое кино на старых компьютерах. А современная компьютерная техника сейчас достаточно дешева.
Трансформационная анимация
Как вы знаете, отдельные кадры покадровой анимации сохраняются в виде растровых изображений. В векторном виде сохранять их, вроде бы, неудобно - об этом уже говорилось. Теперь давайте предположим, что мы не вняли голосу разума и все-таки сохранили каждый кадр такой анимации в векторном виде. (Скажем честно, такая анимация, какая изображена на рис. 12.1, сама просится в векторный вид. Сами посмотрите - ведь простейшая графика, линии и заливки.) Далее, предположим, что мы можем описывать с помощью формул не только форму кривых и прочих графических примитивов, но и их поведение. Следовательно, мы можем изменить форму "рта", просто вызвав нужную формулу и подставив в нее нужные параметры. Что у нас получится?
А получится у нас трансформационная анимация. От покадровой она отличается тем, что не описывает каждый кадр последовательности отдельно, а сразу задает поведение того или иного графического примитива. А собственно созданием анимации, движения, занимается программное обеспечение, поддерживающее соответствующий формат файлов.
Как вы уже поняли, векторная графика и трансформационная анимация -братья навек. Как трансформационная анимация немыслима без векторной графики (к растровому изображению ее применить просто невозможно), так и векторной графике сам Бог велел добавить трансформационную анимацию. Однако хоть векторная графика как способ представления изображений существует довольно давно, трансформационная анимация возникла только в последние годы. Фактически трансформационную анимацию создал пакет Flash, если до него и существовали какие-то аналогичные разработки, то они остались неизвестными широкой публике.
Форматы видеофайлов
Теперь поговорим о самых распространенных на сегодняшний день форматах видеофайлов. А в описании каждого формата также опишем используемые для этого формата алгоритмы сжатия. Практически все эти форматы обеспечивают сохранение только покадровой анимации, кроме самого формата Shockwave/Flash и его предшественника FutureSplash.
QuickTim
Один из самых первых, если не самый первый, формат видеофайлов, получивший широкое распространение. Разработан фирмой Apple в конце 80-х годов, изначально предназначался для использования на компьютерах Macintosh, впоследствии был перенесен в операционную систему Microsoft Windows. Позднее подвергался неоднократным усовершенствованиям. В настоящее время последней версией является 5.0.
Позволяет хранить и видео-, и аудиоинформацию в одном файле с расширением mov. Для сжатия данных используется одноименный алгоритм. Степень сжатия довольно велика, но качество получающегося фильма не очень высоко по сравнению с качеством, обеспечиваемым алгоритмами группы MPEG и DivX. Поэтому формат и алгоритм QuickTime в последнее время теряет свои позиции.
За прошедшие десять лет формат QuickTime получил довольно большую популярность, в основном, для создания коротких музыкальных, рекламных или обзорных видеоклипов. Абсолютный лидер на платформе Macintosh. В Web-дизайне применяется крайне редко. Насколько известно автору, для распространения полноразмерных фильмов вообще не применяется, хотя в этом формате часто распространяются музыкальные видеоклипы.
AVI
Формат данных AVI (Audio and Video Interlaced - чередующиеся аудио и видео) был разработан фирмой Microsoft в начале 90-х годов для использования в мультимедийном программном пакете Microsoft Video for Windows. Для сжатия как аудио-, так и видеоинформации могли использоваться различные алгоритмы, что обеспечивает этому формату большую гибкость.
MPEG
Этот формат был разработан в начале 90-х годов группой MPEG (Motion Picture Encoding Group -- группа кодирования движущегося изображения) для сохранения фильмов, сжатых с использованием алгоритмов, созданных той же группой. Базируется на формате AVI, но лишен его ограничений.
Файл формата MPEG имеет расширение dat, mpg, mpe, mpeg, mpl, mp2 или mp4. Собственно, набор возможных расширений очень велик, но все они однотипны: как правило, используются буквы тир.
Как уже говорилось, группой MPEG было разработано три алгоритма для сжатия видеоданных.
DivX
Фактически такого формата не существует. На самом деле, это обычный файл AVI или MPEG, сжатый с использованием алгоритма DivX. Созданный в самом конце 90-х годов на основе алгоритма MPEG 4 группой "независимых программистов" (фактически, хакеров), он обеспечивает еще большую степень сжатия при несколько более низком качестве изображения.
Видеофайлы, сжатые с использованием старых версий этого алгоритма, записывались в формате AVI. Версия 5, появившаяся совсем недавно, также поддерживает формат MPEG. Иногда файлы формата AVI, сжатые этим алгоритмом, имеют расширение divx.
Формат DivX используется, в основном, для распространения полнометражных фильмов на обычных компакт-дисках (для этого он, собственно, и создавался). Очень часто такие диски содержат пиратские копии фильмов, из-за этого формат DivX считается чуть ли не незаконным, "хакерским", хотя в самом его существовании нет ничего противозаконного. Совсем недавно формат DivX получил признание крупных разработчиков игр, распространивших в этом формате демонстрационные ролики. В Web-дизайне формат DivX не применяется.
WMV
Дальнейшее развитие формата AVI. Разработан фирмой Microsoft в самом конце 90-х годов как часть инициативы Windows Media (создание набора аппаратных и программных средств, направленных на улучшение мультимедийных возможностей современных Windows-совместимых компьютеров). Само название этого формата переводится как Windows Media - Video.
Видеофайлы, сохраненные в этом формате, имеют расширение wmv или asf. (Существует особая разновидность формата - WMA (Windows Media -Audio), предназначенная для хранения звука, такие файлы имеют расширение wma.) По сравнению с AVI формат WMV имеет различные дополнительные возможности, в частности, средства защиты от несанкционированного копирования.
В настоящее время этот формат стремительно набирает популярность. Но используется он опять же для распространения полноразмерных фильмов и видеоклипов.
RealMedia
Разработан фирмой RealNetwork в середине 90-х для распространения видео через Интернет. Вероятно, первый видеоформат, ориентированный на использование в Сети. Подвергался неоднократным усовершенствованиям. В настоящее время последней версией является 8.0.
Позволяет хранить и видео-, и аудиоинформацию в одном файле с расширением U. Для сжатия данных используется одноименный алгоритм. Степень сжатия весьма велика, и достигаемое при сжатии качество фильма также достаточно высоко.
В настоящее время удерживает довольно большую долю рынка "сетевого видео" и терять ее не собирается. В основном, применяется для распространения фильмов различной длительности и назначения и трансляции так называемого "интернет-телевидения". В Web-дизайне применяется крайне редко.
Глава 13. Покадровая анимация.
Flash - пакет, предназначенный, прежде всего, для создания именно анимации. Неподвижные изображения, конечно, с его помощью создавать тоже можно, но профессиональные художники используют его только тогда, когда под рукой нет ничего более подходящего. Для создания неподвижной графики существуют Adobe PhotoShop, Adobe Illustrator, Macromedia Freehand, Macromedia Fireworks и другие программы. Они приспособлены для этого лучше, чем Flash. Имейте это в виду.
Главное преимущество Flash в том, что он предлагает непревзойденное сочетание достаточно богатых возможностей создания неподвижных изображений, анимации и интерактивности. В этом смысле все вышеперечисленные программы просто отдыхают. При всех их немалых достоинствах никто из них не может того, что может Flash.
Если кто-то скажет, что это не так, напомните ему статистические данные. То, что проигрыватель Flash установлен на 95% всех компьютеров мира, -правда.
Практическая реализация покадровой анимации очень проста и наглядна, хоть и весьма трудоемка. Таким образом, мы сможем больше узнать о временной шкале, с которой часто будем работать в дальнейшем. Вы ведь помните важнейший принцип познания: от простого - к сложному. Трансформационная анимация, конечно, значительно менее трудоемка, но овладеть ей сложнее, чем покадровой.
Напомним, что представляет собой покадровая анимация. Это последовательность большого количества однотипных кадров, изображающих различные фазы движения. Такая последовательность очень быстро прокручивается перед зрителем, в результате чего он видит непрерывное движение. Как видите, все достаточно просто. Остается добавить, что на принципе покадровой анимации основаны весь кинематограф и все телевидение. Так что с покадровой анимацией вы сталкиваетесь, когда смотрите вечерние новости.
Глава 14. Трансформационная анимация.
Как вы узнали из главы 13, покадровая анимация создается очень просто. Нужно только добавить достаточное количество кадров в последовательность, а дальше - рисуй себе их содержимое, используя средства, изученные в части 2. Только вот беда: рисовать придется очень долго...
Но, если вы не хотите рисовать слишком долго, вам на помощь придут средства Flash по созданию трансформационной анимации. Если Flash используется для подготовки Web-графики (элементы оформления Web-страниц, анимированные рекламные байкеры, небольшие фильмы), то зачастую вся анимация ограничивается простейшими движениями какого-либо элемента. А такие движения элементарно реализуются с помощью трансформационной анимации (так называемая трансформация движения). Вам нужно будет только нарисовать два ключевых кадра последовательности - начальный и конечный - и сделать несколько щелчков мышью. Конечно, если ваша анимация сложнее, чем простое движение "из точки А в точку В", вам придется также создать дополнительные ключевые кадры, во всех точках, где движение элемента изменяется.
Более того, с помощью Flash вы можете заставить какой-либо элемент менять свой цвет или прозрачность, последнее нужно, если вы хотите сделать элемент постепенно появляющимся или исчезающим. А еще средствами Flash можно реализовать морфинг - плавное изменение формы любого элемента. Этот вид анимации называется трансформацией формы.
Так что средства трансформационной анимации Flash не так уж и бедны, как вы могли подумать, читая главу 12, где подробно описывались оба вида анимации.
Кроме меньшей трудоемкости, трансформационная анимация имеет еще одно достоинство перед покадровой: она занимает меньше места. В самом деле, вместо того, чтобы хранить все кадры фильма, программа записывает в файл только несколько чисел - параметры функции, реализующей эту анимацию. Сравните объем десятка изображений, пусть даже и векторных, и объем, занимаемый этими числами. Даем гарантию - это сравнение будет отнюдь не в пользу покадровой анимации.
Основным недостатком трансформационной анимации является ее бедность. Хоть Flash и предлагает нам достаточно мощные средства "оживить" изображения "малой кровью", красивые и сложные мультфильмы вы из одних трансформаций не сделаете. Если вы мечтаете о карьере в художественной анимации, то - увы!.. - готовьтесь опять же рисовать бесчисленные кадры, один за другим, один за другим...
Глава 15. Слои
И поговорим о слоях. Поскольку без слоев более-менее сложной трансформационной анимации все равно не создашь. Да и при создании покадровой анимации слои могут стать серьезным подспорьем. Если, конечно, научиться ими пользоваться...
Слой (в терминологии Flash - layer) можно рассматривать как лист прозрачной пленки, лежащий на рабочем листе Flash. Вы можете рисовать на слое, используя изученные в главе 5 инструменты рисования. Кроме того, вы можете класть поверх этого слоя или под ним другие слои, на которых тоже что-то нарисовано. И, наконец, можно легко переключаться между слоями, чтобы работать с нарисованной на них графикой. Каждый слой имеет уникальное имя, с помощью которого он однозначно идентифицируется.
Выясним теперь преимущества, даваемые слоями.
□ В главе 5 вы познакомились с фрагментацией и слиянием графических фрагментов. В качестве борьбы с этим явлением предлагались группировка, преобразование фрагмента графики в образец и "разнесение" фрагментов по разным слоям. В самом деле, если какие-либо графические фрагменты находятся в разных слоях, то они не будут ни фрагментироваться, ни сливаться. А все потому, что они не соприкасаются друг с другом.
□ Вы уже знаете, что методом трансформации движения можно анимировать только один графический элемент в слое. Но если слоев может быть сколько угодно, то и количество анимированных элементов тоже не ограничено. Каждый анимированный элемент находится в своем слое, не мешая, таким образом, другим анимипоняиным элементам. Единственный недостаток такого подхода: в сложных фильмах слоев может быть очень много.
□ Создание некоторых специальных эффектов, таких, как слои-направляющие и маскирующие слои.
Еще нужно сказать, что слои сами по себе не увеличивают размер файла изображения Flash. Увеличивает его размер только графика, расположенная в этих слоях.
Но мы также знаем, что трансформацию движения можно применить над единственным элементом в слое. Выходит, что нам для достижения своей цели нужно "разбросать" все буквы надписи Flash по разным слоям! Но как это сделать? Неужели придется создавать все пять слоев, рисовать на них буквы и следить, чтобы они находились на своих местах? Нет ли другого способа сделать это?
Есть. Flash содержит встроенные средства для распределения выделенных графических элементов по разным слоям. Таким образом, если вы выберете несколько графических элементов, Flash создаст нужное количество новых слоев и поместит в них эти элементы. Распределенные по слоям элементы пропадут с изначального слоя, где они находились до распределения, остальное же содержимое этого слоя останется нетронутым.
Управление слоями
Вы можете добавить новый слой, нажав кнопку Insert Layer, расположенную в нижней части списка слоев. Вы также можете выбрать пункт Layer в меню Insert или пункт Insert Layer в контекстном меню выделенного слоя. Новый слой будет вставлен в список сразу же над выделенным слоем.
Вы можете перемещать слои в списке, меняя порядок их перекрытия друг другом. Для этого просто перетащите нужный слой мышью на новое место.
Есть три способа выделить в списке нужный слой. Во-первых, вы можете щелкнуть по нему мышью в списке слоев, после этого все содержимое этого слоя на рабочем листе будет выделено. Во-вторых, вы можете щелкнуть по любому кадру анимации, созданной в этом слое. В-третьих, вы можете просто выделить на рабочем столе один из графических фрагментов, находящихся в этом слое. (Помните: все слои прозрачны, поэтому сквозь пустое пространство слоев вы можете видеть все, что находится под ними.)
Вы можете также выделять сразу несколько слоев в списке. Если вам нужно выделить непрерывную группу слоев, щелкните по первому слою в группе, нажмите клавишу
Слои можно переименовывать. Для этого дважды щелкните по имени нужного слоя. После этого вместо его имени появится небольшое поле ввода, в котором будет поставлено старое имя слоя. Введите новое имя и нажмите клавишу
Удалить ненужный слой вы можете разными способами. Проще всего выделить слой, который вы хотите удалить, и нажать кнопку Delete Layer (рис. 15.9), расположенную в нижней части списка слоев. Также вы можете перетащить ненужный слой прямо на эту кнопку. Ну и, наконец, вы можете выбрать пункт Delete Layer в контекстном меню выделенного слоя. Учтите только, что при удалении слоя удаляется также вся расположенная в нем графика.
Слои-направляющие
При создании анимации очень часто бывает нужно, чтобы какой-либо элемент двигался по некоему пути. Таким путем может быть прямая, кривая или ломаная линия, окружность или сложный контур. Обычными средствами, которые мы изучили в главе 14, направить анимированный элемент по пути невозможно. Для этого нужно использовать специальный слой, называемый слоем-направляющей.
Маскирующие слои
Вероятно, вам встречались изображения Flash, по которым "ползает" своего рода "прожектор" - круглое светлое пятно, "высвечивающее" изображение частями. Такие изображения встречаются довольно часто: иногда это карты звездного неба, иногда - карты земной поверхности, а иногда - какие-то "картины реальной жизни". Такое светлое пятно, "высвечивающее" в один момент времени только часть какого-либо лежащего под ним изображения, совпадающую с его размерами, называется маской, слой, на котором оно находится, - маскирующим слоем, а "высвечиваемое" маской изображение - маскируемым изображением. В случае Flash маскируемое изображение находится в маскируемом слое.
Вы можете думать, что маска - это отверстие в непрозрачном маскирующем слое. (Обычно слои, как вы знаете, прозрачны.) Сквозь это отверстие можно видеть все, что лежит под этим слоем. Отверстие может быть любым графическим фрагментом: геометрической фигурой, экземпляром (только не кнопкой) или текстовым блоком. Наконец, это отверстие может быть ани-мировано методами трансформационной анимации.
Глава 16. Импорт анимации и видео
Об импорте графики мы уже говорили. Также упоминали и о том, что для каждой задачи существует свой идеальный инструмент. Ну и, конечно, мы достаточно подробно разъяснили, какие задачи решает Macromedia Flash. Все это было описано в главе 8, где рассказывалось об импорте статичной графики, и, пожалуй, повторять все это здесь - значит зря расходовать бумагу.
И все же мы кое-что скажем. Как-никак, статичная графика и анимация - вещи очень разные, а во многом - диаметрально противоположные.
Прежде всего, нужно сказать, что Flash позволяет как внедрять импортированное видео в файл документа Flash, так и создавать ссылку на внешний видеофайл. В первом случае говорят о внедренном в документ Flash клипе, а во втором - о клипе, связанном с документом Flash. Маленькие видеофайлы, как правило, внедряются в документ Flash, а большие - связываются с ним. К несчастью, поддерживается только связывание с файлами формата QuickTime.
Теперь поговорим о собственно импорте внешнего видео. И укажем, какие файлы лучше внедрять, а какие - связывать.
Чаще всего приходится импортировать во Flash фильмы, созданные в самом Flash, но другими художниками. Например, вы можете "позаимствовать" удачные анимированные элементы для своего изображения или фигурные кнопки для своей Flash-программы. (О программировании во Flash см. часть 4 этой книги.) Конечно, эти элементы могут быть помещены в обычные или разделяемые библиотеки Flash, но зачастую они просто "лежат" в Сети "россыпью", в виде отдельных SWF-файлов. Поскольку такие файлы имеют небольшой размер, они внедряются в документ Flash, это позволяет сократить до минимума количество файлов, необходимых для показа изображения.
Также Flash поддерживает импорт "анимации", отдельные кадры которой хранятся в пронумерованных файлах. Такие наборы изображений могут быть созданы разными графическими программами, в частности, самим Flash. Подобные файлы также внедряются в документ Flash.
Видеоклипы, сохраненные в других форматах: QuickTime, MPEG и др. (все поддерживаемые Flash видеоформаты описаны в главе 12), внедряют во Flash значительно реже. Причины этому чисто технические, и заключаются они в том, что, как правило, в таких форматах распространяются полнометражные игровые, документальные и музыкальные фильмы. А файлы, содержащие такие фильмы, занимают очень большой объем, что не может не сказаться на размерах результирующего файла Flash, а значит, на времени его загрузки. Поэтому, такие файлы практически всегда связывают с документом Flash. В результате, внешняя анимация загружается только тогда, когда в ней возникнет надобность.
При импортировании во Flash внешних файлов возникает еще один вопрос - о защите авторских прав их создателей (если, конечно, вы не создали эти файлы сами). В самом деле, воровать нехорошо. Поэтому прежде, чем позаимствовать что-либо чужое для своего блага, обязательно выясните, как к этому отнесется владелец. На Web-сайтах, занимающихся распространением графики, обязательно указывается, что с этой графикой разрешено делать. Поэтому будьте внимательны: всегда читайте то, что написано мелким шрифтом.
Как вы уже знаете, Flash поддерживает импорт "анимации", отдельные кадры которой хранятся в пронумерованных файлах. Если вы импортируете файл растрового изображения (формата BMP, GIF или любого другого), чье имя кончается числом, Flash ищет аналогичные ему файлы. (Подробнее об импорте статичной графики см. главу S.) Если он находит последовательность таких пронумерованных файлов, например, Рис1.Ьтр, Рис2.Ьтр, РисЗ.Ьтр и т. д., то предлагает импортировать всю эту последовательность как видеоклип. На экране появляется соответствующее предупреждение, нажмите кнопку Yes (Да) или No (Нет). Если вы нажмете Yes, Flash импортирует последовательность файлов и превратит их в клип, если же вы нажмете No, будет импортирован только выбранный вами файл.
Если вы хотите связать изображение Flash с внешним файлом, учтите что в данной версии Flash (MX) поддерживается только связывание с файлами QuickTime. Если же вы хотите связать изображение Flash с видеофайлом другого формата, то нужно преобразовать последний в файл QuickTime, воспользовавшись программным пакетом Apple QuickTime.
Импорт видео и работа с ним
А теперь давайте рассмотрим, как же в изображение Flash импортируется видео, и какие средства предоставляются для работы с ним.
Как вы знаете, все импортированные во Flash видеоклипы преобразуются в образцы-импортированные видео. Так что вы можете создавать на рабочем листе столько экземпляров импортированного клипа, сколько хотите, и размер файла Flash при этом увеличиваться не будет. (Хотя, конечно, при самом импорте клипа он увеличится, и зачастую очень сильно.)
Внедрение видео
Для того чтобы внедрить в документ Flash внешний видеофайл, поместив его и в библиотеку, и на рабочий лист, выберите пункт Import в меню File или нажмите комбинацию клавиш
Когда вы хотите импортировать видеоклип только в библиотеку, выберите пункт Import to Library в меню File. На экране появится стандартное диалоговое окно открытия файла Windows. Найдите нужный файл и нажмите кнопку открытия файла.
Если вы собираетесь импортировать файл QuickTime, на экране появится диалоговое окно Import Video (рис. 16.1). В нем находится всего два переключателя. Переключатель Embed video in Macromedia Flash document позволяет вам внедрить видеофайл в документ Flash. А переключатель Link to external video File обеспечивает связывание документа Flash с этим видеофайлом. Поскольку нам нужно внедрить видеофайл в документ Flash, следует включить переключатель Embed video in Macromedia Flash document. И, разумеется, нажать кнопку ОК. Если вы нажмете кнопку Cancel, файл не будет импортирован.
Глава 17. Работа со звуком
Когда-то кино было "великим немым". Люди приходили в кинотеатры, чтобы смотреть на крошечном экране черно-белые дергающиеся картинки под музыку разболтанного пианино. Все это было в новинку, как и первые фанерные самолеты, и первые телефоны, в которые нужно было кричать во все горло, как и четыре параллельные линии, показанные на экране первого телевизора. Все это было чудом, недоступным пониманию широких масс, а оттого - вдвойне притягательным.
Сейчас кино перестало быть чудом, также как воздушные сообщения, телефония и телевидение. Чудо превратилось в бизнес, а что может быть прозаичнее. Люди разговаривают по мобильникам, летают на самолетах, смотрят дома телевизоры, а кино да что о нем говорить - кинотеатры практически умирают. Никто не хочет ходить в кино: его заменило домашнее видео, VideoCD, DVD и DivX. (Говорят, в столицах ситуация получше, чем в провинции, но кто его знает.) Настанет день, когда чудо умрет окончательно, уступив место чему?
Единственное, что никогда не умрет, - это магия кинопленки. Магия черно-белых прыгающих лиц тех, кого давно с нами нет...
Когда-то компьютеры были большими и медленными, а перерабатывать умели только одни перфокарты или перфоленты в другие такие же перфокарты или перфоленты. Никто и в мыслях не мог допустить, что через несколько десятков лет их далекие потомки станут игрушками для пресыщенных обывателей и их детишек. Как же - такая большая и сложная техника финансировалась военными, очередь была расписана на недели вперед, какие еще игрушки?!!
Но прошли годы, и компьютеры действительно стали игрушками. В самом деле, если в доме есть компьютер, то обязательно найдутся и CD с игрушками и фильмами (если, конечно, компьютер достаточно мощный, а владелец - не законченный трудоголик). Более того, зачастую этот компьютер используется только для игр и просмотра фильмов. Конечно, владелец пытается заняться чем-то полезным на своем "железном друге", но эти желания так и не претворяются в действительность.
Когда-то Интернет был сплошь текстовым, разбавленным редкими вкраплениями корявых рисунков. В те времена Всемирной Сетью пользовались, в основном, только ученые, военные и государственные чиновники, а что разве нужны этим сухарям дизайнерские изыски? Первым интернетчикам вполне хватало текстовой информации и файлов, никто из них и в страшном сне не мог предвидеть, для чего будет использоваться Сеть через десять лет. Как же можно во время работы качать музыку или смотреть интерактивное видео, когда надо же, елки-палки, работать - за работу казна деньги платит, а не за музыку и видео!
Теперь да что рассказывать об этом - сами зайдите в Сеть или хотя бы вспомните, зачем вы заходили туда последний раз! Даже если у вас и было в мыслях найти что-то действительно для дела, вы точно не забывали и о развлечениях. А какие развлечения сейчас наиболее доступны рядовому пользователю Сети? Конечно, музыка. (К сожалению, видео могут смотреть только обладатели достаточно быстрых каналов, которых пока немного. Но со временем предпочтения большинства могут измениться.)
История повторяется. И кино, и компьютеры, и Интернет из "великих немых" превратились в "великих болтунов".
Кодирование и хранение звуковых данных
Для кодирования звука и записи его в файл применяются три различных способа. Все эти способы мы сейчас кратко рассмотрим.
Первый способ - кодирование и запись в файл собственно звука. В этом случае к компьютеру подключается микрофон или иной источник звука, и сигнал с него с помощью специальных программ записывается в файл. Такой способ записи звука применяется в подавляющем большинстве случаев. Например, популярные форматы WAV, MP3, VQF, WMA - все это форматы хранения звуковых данных.
Преимуществом такого подхода к хранению звука является точное его воспроизведение на любом устройстве. Например, вы можете переписать з формат МРЗ любимые кассеты, и ваша запись будет нормально проиграна на любом компьютере или носимом МРЗ -проигрывателе, хотя, конечно, с разным качеством. Также достоинствами являются возможность записи любых звуков (голоса, природных и искусственных шумов, любых музыкальных инструментов) и легкость обработки (подавления шумов, нормализации и др.). Недостаток, пожалуй, один: большой объем получающегося в результате записи звука массива данных.
Чтобы уменьшить массив звуковых данных, применяют различные алгоритмы сжатия. Это может быть сжатие как без потерь, так и с потерями. Как правило, без потерь сжимают звук, предназначенный для дальнейшей обработки, а с потерями - предназначенный для распространения (например, известный формат МРЗ). Иногда звук не сжимают вообще.
Кодирование и запись звука - самый распространенный способ хранения звуковых данных. В частности, он используется для распространения музыки на компакт-дисках и в файлах. На компакт-дисках записывается несжатый звук, для распространения в файлах применяются различные алгоритмы сжатия. Также этот способ записи звука служит для создания звукового сопровождения к видеоклипам.
Второй способ - хранение в файлах только команд для воспроизведения звука. При проигрывании таких файлов эти команды читаются и выполняются либо специальной программой-проигрывателем, либо соответствующим образом оснащенной звуковой картой компьютера. Для создания таких файлов используются специальные программы или музыкальные синтезаторы, опять же в совокупности со специальными программами.
Для воспроизведения собственно звука проигрыватели файлов и звуковые карты имеют примеры звучания реальных инструментов или различных реальных или синтезированных звуков, называемые инструментами или сэмплами. Для удобства загрузки и управления инструменты объединяются в банки инструментов. Некоторые очень старые программы и звуковые карты применяют для вывода звука метод частотного синтеза, но качество такого звука очень плохое.
Достоинством второго способа является компактность получающихся файлов. В самом деле, чтобы записать пару байт, составляющих команду, много места не нужно. Недостатки: невозможность записи любых звуков (только тех, для которых в используемом банке инструментов есть соответствующие сэмплы) и зависимость воспроизводимого звука от используемой программы, звуковой карты и банка инструментов.
Второй способ используется практически для тех же целей, что и первый. С его помощью можно записывать и распространять музыку, хранить репетиционные записи (они занимают немного места), помещать музыкальное сопровождение в различные программы и на Web-сайты. Самые распространенные форматы записи звука вторым способом: MIDI и WАV.
Третий способ - небольшая модификация второго. А именно: в файле сохраняются не только команды для воспроизведения звука, но и используемые для этого сэмплы. Фактически каждый такой файл содержит в себе свой собственный банк инструментов. Такой формат записи данных часто называют гибридным.
Третий способ объединяет достоинства и недостатки первого и второго способов. Файлы, созданные третьим способом, адекватно воспроизводятся на любом оборудовании и любой программой, они имеют размер, меньший чем файлы, созданные первым способом, но больший, чем файлы звуковых команд.
Как ни странно, но третий способ записи звука не снискал особой популярности. В настоящий момент его используют только особые "малобюджетные" программы создания музыки, называемые трекерами. Файлы, создаваемые с помощью трекеров, называются трекерными модулями. Существует целая подпольная трекерная субкультура, живущая своей особой жизнью, но почти не известная "в миру". Часто, говоря о форматах записи звуки и программах для создания музыки, трекеры даже не упоминают.
WAV
Формат WAV (от английского wave - волна) был создан фирмой Microsoft в качестве стандартного формата хранения звуковых данных в операционной системе Windows. К настоящему времени получил широчайшее распространение для записи звука, предназначенного для последующей обработки, для хранения сэмплов, помещения звуковых данных в различные программы, на Web-сайты и т. п. Поддерживается абсолютно всеми программами записи и обработки звука, за исключением самых специализированных.
Файл формата WAV имеет "говорящее" расширение wav. Звуковые данные могут быть сжаты с использованием любого алгоритма, для которого в системе установлен кодек, в том числе, популярным алгоритмом MPEG 1 уровень 3, или вообще не сжаты.
Судя по всему, формат WAV будет применяться и в дальнейшем. Пока что никаких причин отказываться от него нет. И все же, для распространения музыки он применяется очень редко.
МРЗ
Формат МРЗ был создан для распространения музыкальных файлов, сжатых по алгоритму MPEG 1 уровень 3. В настоящее время, похоже, стал самым популярным форматом звуковых файлов в Интернете. Поддерживается абсолютно всеми профаммами записи и обработки звука, за исключением некоторых узкоспециализированных.
Файл этого формата имеет "говорящее" расширение трЗ. Звуковые данные всегда сжимаются с помощью алгоритма MPEG 1 уровень 3. другие алгоритмы не допускаются. Файл МРЗ также может хранить дополнительные данные, называемые тегами. В частности, с помощью тегов сохраняются имя исполнителя, название композиции, название альбома, год записи альбома и жанр музыки.
Этому формату, похоже, уготована долгая жизнь. Несмотря на то, что многие фирмы-распространители музыкальной продукции настроены против него, МРЗ полностью завоевал Интернет и сдавать завоеванные позиции не собирается. Более того, этот формат не собирается уступать и более новым форматам записи звука (VQF, OGG Vorbis, MS WMA и др.), хотя более новые разработки обеспечивают лучшее качество звука при значительно меньшем размере файла.
Форматы звука, не поддерживаемые Flash
Кроме звуковых форматов, поддерживаемых Flash, мы также рассмотрим форматы, которые им не поддерживаются. Это пригодится вам в дальнейшей работе: встретив файл, записанный в одном из таких форматов, вы будете знать, что с ним делать. А именно, перекодировать его в один из поддерживаемых форматов, использовав специальное программное обеспечение.
WMA
Разработан фирмой Microsoft в самом конце 90-х годов как часть инициативы Windows Media (создание набора аппаратных и программных средств, направленных на улучшение мультимедийных возможностей современных Windows-совместимых компьютеров). Само название этого формата переводится как Windows Media - Audio. Изначально формат WMA предназначен для постепенной смены форматов WAV и, в идеале, МРЗ, по сравнению с обоими этими форматами WMA обеспечивает лучшее качество звука и меньший размер файла.
Аудиофайлы, сохраненные в этом формате, имеют расширение wma. Существует также особая разновидность п„ формата - WMV (Windows Media Video), предназначенная для хранения видео, такие файлы имеют расширение v,ir . или asf. По сравнению с WAV и МРЗ формат WMA имеет различные дополнительные возможности, в частности, средства защиты от несанкционированного копирования.
В настоящее время этот формат стремительно набирает популярность. Но серьезно поколебать позиции формата МРЗ ему пока не удается. Хотя в будущем, благодаря поддержке крупнейших фирм-распространителей музыки, он вполне может вытеснить МРЗ.
RealMedia
Разработан фирмой RealNetwork в середине 90-х для распространения звуковой информации через Интернет. Также часто встречается название RealAudio. Подвергался неоднократным усовершенствованиям. В настоящее время последней версией является 8.0.
Файл формата RealMedia имеет расширение га. (Существует также разновидность этого формата для хранения видео, файлы, записанные в этом формате, имеют расширение .:. или smil.) Для сжатия данных используется одноименный алгоритм. Степень сжатия весьма велика, и достигаемое при сжатии качество звука также достаточно высоко.
В настоящее время удерживает довольно большую долю рынка "сетевого аудио" и терять ее не собирается. В основном, применяется для распространения музыки и трансляции так называемого "интернет-радио".
MIDI
Собственно, это не только и не столько формат музыкальных файлов, сколько стандарт обмена информацией между различным музыкальным оборудованием и программным обеспечением. Был разработан в начале 80-х годов, когда получили распространение цифровые музыкальные синтезаторы, в виде стандарта General MIDI. Используется до сих пор, наряду с различными "расширенными" форматами (MIDI XG и др.).
Файл этого формата имеет расширение mid, midi или nni. Он содержит набор команд воспроизведения звука для программного или аппаратного проигрывателя MIDI (то есть, имеет место второй способ записи звуковых файлов). Из-за этого MIDI-файлы имеют очень маленький размер.
В настоящее время удерживает относительно небольшую нишу - распространение музыки по Сети и создание фонового музыкального сопровождения для Web-сайтов.
Импорт звука
Для того чтобы импортировать в документ Flash звуковой файл, выберите пункт Import в меню File или нажмите комбинацию клавиш
Импортированные звуковые файлы помещаются в библиотеку в виде образцов-звуков. Таким образом, вы можете создавать сколько угодно экземпляров этого звука, и размер файла Flash при этом не увеличится.
Вместо того чтобы искать нужные звуковые файлы или создавать их самим, вы можете воспользоваться библиотекой общего использования Sounds, поставляемой с Flash. Просто выберите пункт Sounds в подменю Common Libraries меню Window - и в появившемся на экране окне библиотеки вы найдете достаточное количество звуковых образцов для своих первых фильмов.
Использование звука в фильме
Импортированный звук используется в фильме точно так же, как и любые другие образцы, содержащиеся в библиотеке. Вы создаете для звука отдельный слой, помещаете в него экземпляр нужного образца-звука, создаете нужной длины последовательность кадров - и все! Возможно также, вы захотите задать для отдельных кадров этой последовательности какие-то эффекты: запустить проигрывание звука с этого кадра или, наоборот, остановить его.
Создание нового слоя мы описывать не будем - об этом достаточно подробно было сказано в главе 15. Желательно, чтобы в рабочем слое не было никакой графики. Вы, конечно, можете поместить несколько экземпляров звука в один слой, но это не рекомендуется. Будет лучше, если вы поместите каждый звук в своем слое: тогда у вас будет больше возможностей по управлению используемыми в фильме звуками.
Поместите в слой экземпляр образца-звука. Создайте последовательность кадров нужной длины. Для этого выделите пустое место на временной шкале, где должна заканчиваться ваша последовательность кадров, и выберите пункт Frame в меню Insert, пункт Insert Frame в контекстном меню выделенного пустого места или просто нажмите клавишу
Правка звука средствами Flash
Выше мы упомянули, что, выбрав в списке Effect пункт Custom, вы можете задать некоторые параметры звука, в частности то, как будут изменяться его громкость и панорамирование во время проигрывания. Вы также можете сделать это, нажав кнопку Edit, расположенную правее списка Effect. А собственно правка звука выполняется в диалоговом окне Edit Envelope, которое появится на экране после любого из этих действий.
Правка выполняется с помощью двух больших графиков, расположенных соответственно в верхней и нижней частях этого диалогового окна. Верхний график позволяет задать изменение громкости, а нижний "отвечает" за панорамирование. Кроме того, в левом и правом нижнем углах этого окна находятся наборы небольших кнопок, которые весьма помогут вам в работе.
Глава 18. Создание интерактивных фильмов
Подавляющее большинство интерактивных элементов в фильмах Flash создаются с помощью клипов, точнее, экземпляров образцов-клипов. (Подробнее о них см. главу 10.) Встроенные клипы могут управляться из сценариев, в отличие от графических экземпляров и обычной графики, которая не имеет соответствующих "рычагов управления". Кроме клипов, управляться из сценариев могут кнопки, и, разумеется, сам фильм.
За доступ к клипу из сценария "отвечает" объект movieClip. Данный объект обеспечивает набор свойств и методов, которые и являются "рычагами управления" клипом.
В отличие от встроенных и пользовательских объектов, экземпляр объекта movieClip не нужно создавать с помощью конструктора. Это выполняет сам
Flash. Также он создает экземпляр объекта movieciip, "отвечающий" за основной фильм (то есть сам документ Flash). Вам остается только использовать нужные свойства и методы для управления соответствующим клипом (или фильмом).
Оператор typeof для клипа возвращает значение "clip".
Зачем нужны встроенные клипы
Встроенные клипы могут использоваться разными путями и для разных целей. Сейчас мы их перечислим.
Во-первых, встроенные клипы применяются для создания сложной трансформационной анимации. Как вы помните, Flash может создать только одно движение в слое. Если же вы хотите создать несколько движений или одно сложное движение, вам придется обращаться к покадровой анимации, либо использовать трансформацию формы или встроенные клипы.
Поясним это на примере. Допустим, вы хотите создать фильм, который бы показывал автомобиль, перемещающийся справа налево по рабочему листу. Причем, его колеса должны вращаться. Обычная трансформация движения, однако, реализует только одно движение в слое: либо перемещение самого автомобиля, либо вращение только одного колеса. Что делать?
Можно, конечно, сделать "классическую" покадровую анимацию, рисуя вручную каждый кадр, но это сложно. Можно создать трансформацию формы, но это еще сложнее. Поэтому лучше всего использовать вложенную анимацию. Порядок действий в этом случае такой:
-
Создаем клип, представляющий собой вращающееся колесо. Экспортируем его в формат Shockwave/Flash.
-
Создаем основной фильм и импортируем в него клип, изображающий вращающееся колесо.
-
В основном фильме создаем графический образец или образец-клип, изображающий наш автомобиль. В него на соответствующие места помещаем два экземпляра импортированного клипа-колеса.
-
Помещаем на рабочий лист готовый экземпляр образца-автомобиля. Анимируем его, т. е. заставляем двигаться по листу. Дело сделано.
Как видите, мы создали довольно сложную анимацию средствами трансформации движения.
Во-вторых, встроенные клипы применяются для создания сложной анимации, управляемой сценариями. Только клипы имеют соответствующие "рычаги управления", с помощью которых вы можете воздействовать на их поведение из сценариев. (Об этом, собственно, уже говорилось, но стоит повторить еще раз.)
В-третьих, вы можете использовать встроенные клипы для создания целых Web-сайтов, размещенных во Всемирной Сети или на локальном диске. В самом деле, фильмы Flash можно рассматривать как достойную замену негибкому и порядком устаревшему языку HTML. И такие сайты уже существуют.
Ну, и, в-четвертых, клипы можно использовать для создания элементов управления Flash-приложений.
Глава 19. Создание приложений Flash
Знаете ли вы, что отличает простой интерактивный фильм от полноценного приложения Flash? Правильно, наличие пользовательского интерфейса!
Пользовательским интерфейсом называется совокупность средств, предназначенных для организации общения пользователя и программы. В случае хорошо нам знакомой операционной системы Windows, пользовательский интерфейс - это набор окон и элементов управления, которые служат для ввода данных в программу и получения от нее результатов. Любое приложение, созданное во Flash или в другом средстве разработки, должно иметь пользовательский интерфейс, иначе оно не сможет получать и выводить данные. Ведь главное предназначение любой программы - обработка данных. А ф.гп.м ну что фильм - крутится себе на экране, независимо, смотрят его или нет.
Поэтому, если вы собираетесь делать на Flash нечто большее, чем фильмы с ограниченными возможностями "общения" со зрителем, вам обязательно нужно позаботиться о пользовательском интерфейсе. И не просто слепить пару элементов управления и связать их парой строк кода - вам придется сделать его удобным для пользователя. Иначе пользователь предпочтет вашей программе другую, благо сейчас у него есть широчайшие возможности выбора.
Итак, какие же средства предоставляет Flash создателям приложений? Давайте их перечислим и кратко рассмотрим.
Кнопки. Это экземпляры образцов-кнопок, впервые упомянутые в главе 10. Образцы-кнопки не очень отличаются от образцов-клипов, за несколькими исключениями, обусловленными самой их "интерфейсной" природой. Кнопки позволяют привязать обработчики к событию press (щелчок на кнопке) и некоторым другим.
Поля ввода и динамические текстовые блоки. Первые позволят принять какие-либо данные от пользователя, а вторые - вывести результаты. Создание полей ввода и динамических текстовых блоков было описано в главе 7. Запомните, что обычные, статические текстовые блоки не могут управляться из сценариев.
Полноценные элементы управления. Собственно, это обычные клипы, созданные самими разработчиками Flash и включенные в его состав. Среди элементов управления вы можете найти флажки, переключатели, списки и пр., что вам привычно по интерфейсу Windows. Но, в отличие от элементов управления Windows, элементы управления Flash могут менять свой внешний вид.
Пользовательские элементы управления. Это новые элементы управления, не встроенные во Flash, а разработанные вами. Для создания пользовательских элементов управления вы должны использовать встроенные клипы. Как это делается, мы рассмотрим в конце данной главы.
Понятие элемента управления неразрывно связано с понятием компонента. (Поэтому мы будем рассматривать их вместе.) Компонентом во Flash называется своего рода "кусок" графики и кода ActionScript, который вы можете вставлять в свои приложения. Все элементы управления, поставляемые с Flash, реализованы в виде компонентов. Вы также можете писать свои компоненты и потом использовать их где угодно и даже передавать коллегам.
Компоненты - одно из значительных нововведений, появившихся в программировании в последнее время. (Снобы от программирования, правда, так не считают, но нам с ними не по пути.) Они позволяют создавать весьма сложные приложения, просто собирая вместе отдельные их "кирпичики", возможно, написанные другими разработчиками. Количество средств разработки, поддерживающих компонентное программирование, неуклонно растет, и совсем недавно к ним добавился и наш любимый Flash.
Кнопки
Здесь мы рассмотрим создание и использование кнопок - простейших элементов управления, предоставляемых Flash. Кнопки используются очень часто, и не только в приложениях, но и и обычных интерактивных фильмах Flash, например, для создания Web-сайтов.
Создание кнопок
Чтобы создать образец-кнопку, сделайте следующее. Выберите пункт New Symbol в меню Insert или нажмите комбинацию клавиш
Объект Button
Объект Button "отвечает" за доступ к кнопке из сценариев ActionScript. Этот объект предоставляет набор свойств и методов, с помощью которых и осуществляется управление кнопкой.
Экземпляры объекта Button создаются самим Flash для каждой кнопки, для которой вы задали имя. Вам самим создавать их не нужно.
Во многом объект Button похож на объект -novieciip. Эти два объекта имеют весьма схожий набор свойств и методов и зачастую ведут себя одинаково. В частности, объект Button поддерживает свойства _х, _у, xmouse, ymouse, _height, _width, _alpha И _rotation, уже знакомые вам ПО объекту movieciip. Однако объект Button не поддерживает методы play, stop, gotoAndPiay, gotoAndstop и подобные им, т. к. назначение его все же иное, чем у объекта movieciip. Так что вы можете рассматривать кнопку как сильно специализированный, "урезанный" вариант клипа.
Ниже будут рассмотрены свойства, которые обязательно пригодятся вам в работе с экземплярами объекта Button. (Многие из них поддерживаются и объектом movieciip.)
Свойство enabled позволяет разрешить или запретить доступ пользователя к кнопке. Оно имеет логический тип: значение true разрешает доступ к кнопке, а значение false - запрещает.
Свойство visiо позволяет сделать кнопку видимой или невидимой. Оно имеет логический тип: значение true делает кнопку видимой, а значение false - невидимой.
Свойство useHandCursor позволяет вам сменить курсор мыши, отображаемый, если мышь поместить над кнопкой. Если задано значение true, то отображается курсор в виде "указующего перста", как над гиперссылкой. Если же задано значение false, то отображается обычная стрелка.
Свойство tabindex задает порядок обхода элементов управления при последовательных нажатиях клавиши . (При нажатии комбинации клавиш
Если ни для одного элемента управления в приложении не задан порядок в очереди обхода (то есть, свойство иох равно undefined), Flash будет применять порядок обхода по умолчанию. Если же вы собираетесь задать порядок обхода, имейте в виду, что значение undefined меньше любого числового. Поэтому элементы управления, для которых свойство tabindex не было задано, будут в очереди обхода первыми.
Свойство tabEnabled позволяет убрать кнопку (и вообще любой элемент управления) из порядка обхода, сделать его недоступным для выбора с клавиатуры, но все же доступным для выбора мышью. Это свойство имеет логический тип: значение true или undefined делает элемент управления доступным для выбора с клавиатуры, а значение false - недоступным.
Объект Button поддерживает большое количество событий, которые вы можете использовать для написания обработчиков.
Форматирование текста
Как вы помните из главы 7, имеется возможность форматировать текст, помещаемый в поля ввода и динамические текстовые блоки. Вы можете выделять текст различными шрифтами, цветом, устанавливать различные виды выравнивания для абзацев, задавать отступы текста и красной строки. Все это можно выполнять как в среде Flash, так и с помощью сценариев.
Управление форматированием текста осуществляется с помощью объекта TextFormat. Он содержит ряд свойств, с помощью которых и задаются параметры форматирования текста.
Объект Selection
Flash также предоставляет возможность управления текстовым курсором и выделением текста в полях ввода и динамических текстовых блоках. Для этого предназначен объект Selection, единственный экземпляр которого по имени selection создается самим Flash.
С помощью объекта selection вы можете получить позицию текстового курсора в поле ввода. Для этого вам нужно воспользоваться методом getcaretindex. Если же ни одно поле ввода не имеет фокуса, возвращается -1.
Методы getBeginindex и getEndindex возвращают номера соответственно начального и конечного символа выделенного фрагмента текста. Если ничего не выделено, опять же возвращается -1.
Вы можете выделить нужный фрагмент текста, воспользовавшись методом setselection. Первым параметром этого метода должен быть номер первого символа выделяемого фрагмента, а вторым - номер последнего символа. Запомните, что нумерация символов текста начинается с нуля.
Selection.setselection(10, 30);
Вы также можете просто поставить текстовый курсор в требуемую позицию, передав методу setseiection номер нужного символа и в первом, и во втором параметре:
Selection.setselection(10, 10);
Метод getFocus возвращает имя переменной, привязанной к полю ввода, имеющему в данный момент фокус ввода. Если ни одно поле ввода не имеет фокуса, возвращается null.
Вы можете дать фокус ввода какому-либо полю. Для этого передайте имя переменной, привязанной к этому полю, в качестве параметра методу setFocus:
Selection.setFocus("Name");
Selection.setFocus("_root.id");
Точно таким же образом вы можете дать фокус ввода кнопке, передав этому методу путь кнопки:
Selection.setFocus("_root.btnOK");
Чтобы снять фокус ввода со всех элементов управления, передайте методу setFocus значение null.
Вы можете обрабатывать событие onSetFocus, наступающее, когда поле ввода или динамический текстовый блок получает фокус ввода. Для этого вам будет необходимо использовать объект-перехватчик.
Элементы управления
Все, что мы проходили ранее, суть простейшие элементы пользовательского интерфейса, предоставляемые Flash разработчикам. С их помощью вы можете создавать только самые простые приложения, которые и приложениями-то назвать можно с трудом: формы ввода, элементы оформления Web-страниц и пр. Конечно, никто не спорит, что и формы ввода данных, и элементы оформления Web-страниц нужны и важны. Но для их создания достаточно зачастую хватит обычных кнопок, можно обойтись даже без полей ввода.
Высший пилотаж Flash-программирования - это создание полноценных приложений, сходных с приложениями Windows. Это могут быть игры, утилиты, калькуляторы, даже текстовые редакторы. Для создания пользовательского интерфейса таких приложений применяются настоящие элементы управления: флажки, переключатели, списки, меню и т. п.
Что такое элементы управления Flash? Ничего особенного - обычные клипы, только ведущие себя особым образом, благодаря соответствующим сценариям ActionScript. Элементы управления имеют набор особых свойств и методов, позволяющих задавать и получать их состояние и управлять ими. Задавать начальные значения свойств вы можете как в среде Flash, так и в сценарии.
Глава 20. Работа с внешними приложениями
Flash MX привносит в создание приложений кое-что новое, а именно, компоненты. Компонентом называется специальный клип, имеющий набор свойств и методов и ведущий себя особым образом. Такие компоненты представляют собой отдельные, независимые графические элементы и фрагменты кода ActionScript, которые можно использовать в любом Flash-приложении. Таким образом, компоненты - это особый вид пользовательских объектов.
Типичный пример компонента - любой встроенный элемент управления Flash. Но компоненты не обязательно должны представлять элементы пользовательского интерфейса. Они могут быть обычными графическими элементами, которые используются в фильмах, или вообще быть невидимыми и служить только для целей программирования. Примерами такого рода компонентов могут быть фигурный курсор мыши и невидимый компонент, отслеживающий нажатия клавиш клавиатуры и перемещающий заданный клип по рабочему столу.
Как правило, любой компонент делается независимым от его окружения. Это значит, что вы можете поместить в свой фильм или приложение некоторый компонент, и он будет работать нормально все зависимости от других компонентов фильма или приложения. Если же один компонент требует наличия на листе других компонентов, то об этом особо указывается в его описании.
Работа с внешними приложениями
Когда-то давно, лет двадцать назад, компьютеры были однозадачными. Это означало, что на одном отдельно взятом компьютере в данный момент времени могла выполняться только одна программа. Пользователь запускал эту программу, работал в ней, сохранял результат, завершал программу, запускал другую, опять работал в ней, опять сохранял результат, опять выходил и. т. п. Конечно, это было неудобно, но так в то время работали. И, надо сказать, не очень-то жаловались.
Почему? Во-первых, компьютеры двадцатилетней давности были бесконечно слабее современных и просто не могли потянуть даже две одновременно работающих более-менее серьезных программы. Во-вторых, программное обеспечение было принципиально однозадачным, оно просто не могло Позволить пользователю запустить две программы, за редкими исключениями. В-третьих, кому это было нужно: техника делает вид, что работает, пользователи делают вид, что довольны, а значит, зачем напрягаться...
Конечно, существовали способы запускать на тогдашней технике сразу несколько программ, но они налагали на программы очень серьезные ограничения. Было даже что-то подобное настоящим многозадачным операционным системам (например, первая версия Microsoft Windows). Но все это так и не получило широкого распространения. Почему? Ответ на этот вопрос содержится в предыдущем абзаце.
Потом появилась Windows 3.0, за ней - 3.1, 3.11, 95... Компьютеры существенно прибавили в мощности, а программисты наконец-то поняли, что принцип "один компьютер - одна программа" не так уж и хорош. Многозадачная операционная система MS Windows вытеснила старую однозадачную MS-DOS. И каждый пользователь достаточно мощного компьютера смог уподобиться Юлию Цезарю.
Многозадачность принесла еще одну выгоду: теперь разные приложения могли взаимодействовать друг с другом, обмениваясь данными. Первой попыткой реализовать такой обмен данными был DDE (Dynamic Data
Exchange - - динамический обмен данными), реализованный еще в Windows 3.0. Данные передавались от приложения к приложению небольшими порциями и весьма неспешно, да и надежность DDE была невысока. Вторая попытка - OLE (Object Linking and Embedding - связывание и внедрение объектов) - была несравнимо удачнее и применяется до сих пор, став частью технологии COM (Component Object Model - компонентная объектная модель). Существует еще несколько способов передачи данных от приложения к приложению, но они не столь распространены.
А потом получили широкое распространение компьютерные сети, и в мир пришел Его Величество Интернет. Появились серверные приложения, работающие на серверах, не имеющие пользовательского интерфейса и общающиеся с пользователем по сети. Этим они принципиально отличаются от клиентских приложений, работающих на компьютерах пользователей и взаимодействующих с пользователями напрямую. Самые распространенные и наверняка вам знакомые серверные программы - это сервер почты, Web-сервер, FTP-сервер и сервер баз данных.
Пользователь никогда не работает с серверной программой напрямую, а вместо этого использует особые клиентские программы, называемые клиентом или клиентской частью соответствующего сервера. Такие программы формируют запрос, основываясь на введенных пользователем данных, и отправляют его серверному приложению. В ответ последнее возвращает результат обработки этих данных, который клиентское приложение выдает пользователю. Так, для Web-сервера клиентом является Web-обозреватель, а для сервера данных клиентом может выступать любая современная настольная СУБД.
В этой главе мы поговорим о том, как осуществить взаимодействие приложения Flash с внешними по отношении к нему программами и выполнить обработку внешних данных. Вы, как открыть Web-страницу в Web-обозревателе, как посылать команды проигрывателю Flash из сценария на ActionScript. Вы научитесь общаться с серверными приложениями, посылать им запросы и принимать от них результаты. И напоследок вы узнаете, как обрабатывать во Flash-приложениях данные, написанные на новомодном языке описания и форматирования данных XML.
Управление внешними приложениями
Здесь мы выясним, как из приложения Flash можно управлять другими программами, установленными на том же компьютере. Также мы узнаем, как можно управлять проигрывателем Flash, в котором работает это приложение.
Загрузка Web-страницы
Для загрузки и отображения Web-страницы вам следует воспользоваться действием getuRL. Первым параметром этого действия передается интернет-адрес страницы, которую нужно отобразить, в строковом формате. Вторым параметром может быть передано имя окна Web-обозревателя или фрейма, в котором будет показана страница.
Управление проигрывателем Flash
Как вы знаете, все фильмы, и приложения Flash отображаются в особой программе, называемой проигрывателем Flash. Этот проигрыватель может быть как отдельной, независимой программой, так и встраиваемым модулем для Web-обозревателя. (Также само приложение Flash может быть сохранено в виде исполняемого файла, содержащего проигрыватель, но и в этом случае оно считается отдельным приложением.) И вы можете управлять им из сценариев ActionScript, конечно, в некоторых пределах.
Взаимодействие со сценариями JavaScript
Web-страница, в которую внедрен фильм Flash, может содержать сценарии JavaScript. Вы можете вызывать эти сценарии и выполнять с их помощью какие-то действия над страницей, пользуясь уже знакомым вам действием FSCommand. Для этого нужно просто следовать несложным соглашениям об именовании сценариев JavaScript, а остальное берет на себя Flash.
Использование внешних данных
Мы выяснили, каким образом приложение Flash может управлять внешними программами (а также как внешние программы могут управлять этим приложением). Теперь пришла пора выйти за пределы клиентского компьютера и обратиться к серверным программам.
Как вы уже знаете, серверные программы работают на удаленных компьютерах под управлением программы Web-сервера, с пользователями напрямую не взаимодействуют, а "общаются" с ними только по сети. По сети они принимают от пользователей запросы и так же высылают им ответы: тексты писем, счета, данные из баз и пр. Стало быть, клиентские приложения, "общающиеся" с серверными, должны уметь преобразовывать запросы пользователей в поддерживаемый серверными программами формат. Ну и, конечно, они должны выполнять обратное преобразование, иначе пользователь ничего не сможет разобрать в возвращенном результате.
Flash, как вы уже знаете, делает за вас очень много работы. Он сам кодирует данные, чтобы их можно было нормально передать по протоколу HTTP (HyperText Transfer Protocol - протокол передачи гипертекста), используемому при передаче Web-страниц от сервера к клиенту. (Протоколом называется набор правил обмена информацией по сети, которых должны придерживаться приложения.) Вам остается только правильно сформировать нужный запрос и получить и обработать ответ.
Использование данных XML
Интернет-общественность нашла себе новую игрушку. Это широко разрекламированный язык описания данных XML (extensible Markup Language -расширяемый язык разметки), который служит для структурирования данных. Считается, что он должен покончить с неразберихой, связанной с существованием множества несовместимых форматов хранения данных, привести всю информацию, накопленную трудолюбивым человечеством, в строгий порядок. Сбудутся ли эти прогнозы, оправдает ли XML надежды страждущих? Кто знает...
Сейчас мир охватила мода на XML. Очень и очень многие программы спешно обзаводятся поддержкой этого языка, невзирая, нужна она там реально или нет. Не стал исключением и Flash. Уже предыдущая, пятая версия поддерживала данные, отформатированные с использованием этого языка. A Flash MX эту поддержку развил и углубил.
Глава 21. Средства отладки сценариев ActionScript
В мире нет ничего совершенного. Даже компьютеры - и те несовершенны, постоянно "зависают", ломаются, "глючат" по любому поводу, а то и без повода. И это понятно: ведь компьютеры - творение людей, а люди да что и говорить!., люди есть люди...
Программы содержат ошибки. Не все, конечно, а те из них, что состоят более чем из двух строк кода. (Функционального кода, который что-то реально делает.) Чем больше и сложнее программа, тем больше (теоретически, по крайней мере) в ней ошибок. Вы и сами, конечно, это знаете: уже всем надоели истории об ошибках в операционных системах Microsoft Windows, да и другие большие программные пакеты не лучше. Производители ПО, разумеется, пытаются с этим бороться различными способами, но пока что толку особо не видно. А проистекает все это безобразие опять же оттого, что программы пишутся людьми. А люди есть люди...
Разумеется, ошибки необходимо исправлять. (Если вы думаете, что их нужно смывать кровью, попытайтесь вспомнить все совершенные вами ошибки и прикиньте, хватит ли у вас крови все их смыть.) Для этого используются мощные программные отладчики, организуются специальные, весьма дорогостоящие мероприятия, выпускаются бесконечные пакеты обновления и т. д. и т. п. И что в результате? Как говорят злые языки, "исправляются старые ошибки и добавляются новые". Не хотелось, конечно, чтобы это было на самом деле, но люди есть люди!
Людям свойственно ошибаться. Хорошо еще, что хоть компьютеры ошибаться не могут в принципе. (Конечно, имеются в виду исправные компьютеры.) Компьютеры лишены свободы воли, они только выполняют программный код, созданный людьми. Для них он всегда правилен.
Но хватит философских отступлений. Давайте поговорим о "вылавливании" ошибок, допущенных вами в сценариях ActionScript, и их исправлении. Одним словом, поговорим об отладке сценариев.
Но прежде - небольшое теоретическое введение. Рассмотрим средства, которые может использовать Flash-программист, чтобы найти ошибки в своих сценариях.
Как выявить ошибки
Ошибки, встречающиеся в сценариях ActionScript и программах вообще, можно разделить на два принципиально разных вида. Это ошибки синтаксические и логические.
Синтаксические ошибки - это ошибки и неточности в написании самого кода. Скажем, если вы написали вместо действия else что-то похожее на elswe. Flash предупредит вас о синтаксической ошибке. В самом деле, действия eiswe в языке ActionScript нет, и предупреждение Flash вполне резонно.
Мы рассмотрели простейшую синтаксическую ошибку, которая, что называется, бьет в глаза. Более сложная синтаксическая ошибка - вызов несуществующего метода объекта. Тут сразу трудно понять, что вызывает ошибку. Хорошо, что Flash во многих случаях весьма точно дает знать, что ему не нравится в вашем коде.
Когда вы вводите код в обычном режиме панели Actions, Flash сам следит за правильностью написания кода. Если вы сделаете что-то не так, он подсветит некорректный фрагмент кода красным. Вам будет нужно исправить его, пользуясь соответствующим элементом управления.
Использование отладчика Flash
Отладчик Flash активизируется только при проигрывании фильма в так называемом режиме отладки. Во время обычного проигрывания и рисования фильма он недоступен.
Чтобы запустить проигрывание фильма в отладочном режиме, выберите пункт Debug Movie меню Control или нажмите комбинацию клавиш
Окно отладчика очень похоже на панель Actions. И там, и здесь в правой части находится текстовая область, где отображается отлаживаемый сценарий. Сами сценарии выбираются в раскрывающемся списке, находящемся прямо над этой текстовой областью. В левой части окна отладчика, в отличие от панели Actions, находятся сразу три списка, которые мы рассмотрим далее.
Разделяет эти две части окна отладчика довольно толстая серая полоса, перемещая ее мышью, можно изменять их относительные размеры. На этой полосе также имеется небольшая кнопка, щелкая которую, можно убирать последовательно то одну, то другую часть окна отладчика. Вместо щелчков по кнопке вы можете делать двойные щелчки по самой этой серой линии.
Удаленная отладка фильмов Flash
Отладчик Flash предоставляет еще одну интересную возможность - удаленную отладку фильмов. При удаленной отладке фильм загружается не с локального диска, а с Web-сервера. Таким образом, вы можете отлаживать чужие фильмы и приложения, и другие разработчики могут отлаживать ваши (пресловутое разделение труда).
Чтобы удаленная отладка стала возможной, вам следует поместить на Web-сервер вместе с файлом Shockwave/Flash, содержащим фильм, еще один особый файл, содержащий отладочную информацию. Этот файл имеет расширение swd, такое же имя, как у файла фильма, и формируется Flash при экспорте. Если же Flash не найдет на сервере SWD-файл, отладчик не будет работать правильно; в частности, вы не сможете ставить точки останова и трассировать код. Сейчас мы рассмотрим, как создать такой файл и как запустить удаленную отладку.
Сначала нужно экспортировать фильм, задав параметры, разрешающие удаленную отладку. Для этого, прежде всего, откройте нужный документ. В диалоговом окне Publish Settings (см. рис. 19.1), на вкладке Flash включите флажок Debugging Permitted. Как только вы включите этот флажок, станет доступно поле ввода Password, где вы сможете ввести пароль. После этого любой, кто захочет отлаживать ваш фильм, должен будет ввести этот пароль. Используйте его, чтобы не давать просматривать ваши сценарии случайным людям.
После этого опубликуйте или экспортируйте фильм. Выложите на сервер сформированные файлы swf и swd. Все, подготовка к удаленной отладке завершена.
Теперь расскажем, как выполняется удаленная отладка фильма. Предположим, кто-то попросил вас выловить ошибки в своем приложении. Также предположим, что все шаги по подготовке приложения Flash к удаленной отладке сделаны правильно.
Прежде всего, вам нужно включить удаленную отладку в самом Flash. Для этого запустите Flash, откройте любой документ (можно, в принципе, оставить пустой, созданный при запуске) и запустите его отладку. Когда на экране появится окно отладчика, проверьте, включен ли пункт-выключатель Enable Remote Debugging дополнительного меню. Если он отключен, включите его.
Теперь, применив все знания, редактируйте.
Заключение
Мы рассмотрели все возможности Flash, описанные в поставляемом с ним электронном руководстве. Мы упомянули также те возможности, которые почему-то в руководстве не были описаны, вероятно, его авторы куда-то торопились и не доделали свою работу. Чтобы раздобыть эту "секретную" информацию, нам пришлось порыться на Web-сайте Macromedia - уж там-то есть все. И, разумеется, пришлось многое пробовать "методом научного тыка", а иначе нельзя узнать программный продукт, тем более, такой сложный.
Но очень многое осталось "за кадром". Мы не говорили о расширениях Flash - дополнительных модулях, подключаемых к основной среде и выполняющих какие-либо специальные задачи. Мы не упоминали о тонкостях работы Flash на компьютерах Apple Macintosh. Мы не описывали многие частные проблемы, с которыми вы вполне можете столкнуться при работе с Flash, так как они появляются достаточно редко, но все-таки появляются. Мы не рассматривали дополнительные программы, поддерживающие формат Shockwave/Masn, в том числе и выпущенные самой фирмой Macromedia. Мы, в конце концов, не говорили о создании серверных приложений и тонкостях языка HTML. Мы о многом не говорили. Ибо невозможно объять необъятное.
Macromedia Flash MX - мощный программный продукт, который еще не раз преподнесет сюрпризы пользователям. Чтобы овладеть им в полной мере, вам также могут понадобиться дополнительные знания по компьютерным сетям, Интернету, серверному программированию, языку HTML и прочим Web-технологиям.
Литература.
1.Дронов В. А. Macromedia Flash MX. - СПб.: БХВ-Петербург, 2003. - 848 с.: ил.
2.Гурвиц, Майкл, Мак-Кейб, Лора. Использование Macromedia Flash MX. Специальное издание.: Пер. с англ. — М.: Издательский дом "Вильяме", 2003. — 704 с.: ил.
3.Уотролл Э., Гербер Н. Эффективная работа: Flash MX (+CD). — СПб.; Питер; Киев: BHV, 2003, — 720 с: ил.
7>














