В. Дронов - Macromedia Flash Professional 8. Графика и анимация
- Название:Macromedia Flash Professional 8. Графика и анимация
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2006
- Город:СПб
- ISBN:5-94157-907-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
В. Дронов - Macromedia Flash Professional 8. Графика и анимация краткое содержание
Подробно, доступно и с юмором рассматривается создание современной интернет-графики и анимации с помощью пакета Macromedia Flash Professional 8. Описываются основные инструменты рисования и правки графики, использование слоев, образцов и библиотек, работа с текстом, импорт графики, видео и звука. Рассмотрен процесс производства фильмов стандартными, и весьма богатыми, средствами Flash. Также приводятся краткое описание встроенного языка программирования Flash — Action Script — и методика его применения для разработки интерактивных элементов. Рассказывается о публикации готового изображения или фильма для распространения через Интернет.
Macromedia Flash Professional 8. Графика и анимация - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
После этого наш фигурный курсор будет "заперт" в указанных границах.
Часто бывает нужно знать, находится ли заданная точка внутри какого-либо элемента изображения или касаются ли друг друга два элемента. Эта задача — выявление совпадений и касаний — решается в разных случаях по-разному. И, как правило, ее зачастую весьма непростое решение должно быть найдено программистом.
В нашем случае, однако, все намного проще. Разработчики Flash предусмотрели в объекте movieClip особый метод hitTest . С его помощью мы можем проверить, находится ли заданная точка внутри клипа или касаются ли друг друга два отдельных клипа.
Метод hitTest имеет два формата вызова. Первый из этих форматов позволяет выяснить совпадение точки и клипа:
<���Клип>. hitTest(<���Х>, , <���Проверять контур >);
Понятно, что первые два параметра определяют соответственно горизонтальную и вертикальную координаты нужной нам точки. Третий параметр имеет логический тип и позволяет указать, что считать границами клипа. Если этот параметр имеет значение true , Flash считает границами клипа контур содержащейся в нем графики. В случае значения false Flash "мысленно" вписывает клип в невидимый прямоугольник и считает границами клипа его контур.
Если заданная точка находится внутри клипа, метод hitTes t возвращает значение true . В противном случае — значение false . Возвращаемое значение можно использовать в условном выражении или где-либо еще.
Давайте проверим, как работает этот метод. Создадим новый клип, представляющий собой сложную фигуру из множества кривых. Поместим его на рабочий лист и присвоим ему имя hit . После этого привяжем к этому клипу такой обработчик события enterFrame :
onClipEvent(enterFrame) {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
this._alpha = 50;
} else { this._alpha = 100;
}
}
Этот сценарий-обработчик события проверяет, находится ли курсор мыши внутри контура нашего клипа. Если это так, клип делается полупрозрачным, в противном случае — полностью непрозрачным (видимым).
В нашем случае метод hitTest проверяет только "попадание" в сам клип, поскольку его третий параметр имеет значение true . Если же передать значение false , то метод станет проверять попадание в воображаемый прямоугольник, описанный вокруг нашего клипа. Это более грубая проверка совпадения точки и клипа.
Второй формат метода hitTest позволит нам проверить на совпадение два различных клипа, т. е. проверить, накладываются они друг на друга или перекрываются:
<���Клип !>.hitTest (<���Клип 2 >);
В этом случае метод hitTest проверяет "попадание" не фигуры в фигуру, а воображаемого прямоугольника, описанного вокруг первой фигуры, в воображаемый прямоугольник, описанный вокруг второй фигуры. Следовательно, метод ведет себя так, словно его в данный момент не существующий третий параметр имеет значение false .
Нам осталось проверить работу метода. Создадим новый образец-клип со сложной фигурой, поместим его экземпляр на рабочий лист, сделаем его поменьше и назовем cursor . К первому (и единственному) кадру фильма привяжем вот такой небольшой сценарий:
_root.cursor.startDrag(true);
Этот сценарий заставляет клип cursor двигаться за мышью, т. е. превращает его в фигурный курсор.
Теперь напишем сценарий-обработчик события enter Frame для клипа hit , так чтобы он проверял касание клипов cursor и hit одного другим:
onClipEvent(enterFrame) {
if (this.hitTest(_root.cursor)) {
this._alpha = 50;
} else { this._alpha = 100;
}
}
Работа с графикой
Хоть Flash и предоставляет мощные средства рисования графики и создания анимации, иногда бывает нужно кое-что дорисовать уже во время воспроизведения фильма. Например, если мы собираемся создать фильм, который в процессе воспроизведения будет выводить на рабочий лист график какой-либо функции, нам потребуются средства для рисования этого самого графика. Что в этом случае может предложить нам Flash?
А предлагает он целый набор методов и свойств объекта MovieClip, служащих для рисования различных линий и заливок. Графика, нарисованная с их помощью, называется созданной программно или просто программной графикой.
В главе 14 мы узнали о маскирующих слоях. Но Flash не останавливается на этом — он позволяет преобразовать в маску любой клип, за исключением, разумеется, внешней анимации.
В этом разделе мы поговорим о том, как выполняется рисование графики из сценариев и какие методы объекта movieClip для этого используются.
Но сначала нужно уяснить два момента.
Во-первых, вся программно нарисованная графика выводится "ниже" нарисованной вручную, т. е. с помощью инструментов рисования Flash. Говорят, что программная графика имеет меньший номер в порядке перекрытия, чем нарисованная вручную. Поэтому перед написанием сценариев, рисующих графику, нужно позаботиться о том, чтобы созданная различными способами графика взаимно не перекрывалась. Рекомендуется выделить для программно рисуемой графики специальные "пустые" клипы, находящиеся на самых верхних слоях.
Во-вторых, как уже говорилось, рисование графики выполняется с помощью специальных методов объекта movieClip . Это значит, что программная графика будет нарисована в том клипе, методы которого мы будем вызывать.
Перейдем к делу.
Для рисования графики из сценариев используется так называемое программное перо (не путать с инструментом рисования "перо"!). С помощью особых методов объекта movieClip это перо можно устанавливать в определенные точки на рабочем листе и проводить им линии, прямые и кривые. Также с помощью программного пера задаются точки, где должны быть помещены заливки.
Для перемещения программного пера в нужную точку рабочего листа используется метод moveTo. Нужно, правда, иметь в виду, что этот метод только перемещает перо, но реально ничего не рисует. Вот формат вызова этого метода:
<���Клип>. moveTo (<���Х>, >);
Понятно, что в качестве параметров методу передаются горизонтальная и вертикальная координаты точки, в которую нужно переместить программное перо. Эти координаты отсчитываются относительно точки отсчета клипа.
Проще всего программно нарисовать прямую линию, использовав метод lineTo . Он проводит прямую от точки, в которой в данный момент находится программное перо, до точки, чьи координаты переданы в качестве параметров. Вот формат вызова этого метода:
Читать дальшеИнтервал:
Закладка: