Читаем Macromedia Flash Professional 8. Графика и анимация полностью

onClipEvent(load) {

Mouse.hide();

this.startDrag(true);

}

Вот теперь все работает, как надо.

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

this.startDrag(true, 200, 100, 600, 400);

После этого наш фигурный курсор будет "заперт" в указанных границах.

Выявление совпадений и касаний

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

В нашем случае, однако, все намного проще. Разработчики Flash предусмотрели в объекте movieClip особый метод hitTest. С его помощью мы можем проверить, находится ли заданная точка внутри клипа или касаются ли друг друга два отдельных клипа.

Метод hitTest имеет два формата вызова. Первый из этих форматов позволяет выяснить совпадение точки и клипа:

<Клип>.hitTest(<Х>, , <Проверять контур>);

Понятно, что первые два параметра определяют соответственно горизонтальную и вертикальную координаты нужной нам точки. Третий параметр имеет логический тип и позволяет указать, что считать границами клипа. Если этот параметр имеет значение true, Flash считает границами клипа контур содержащейся в нем графики. В случае значения false Flash "мысленно" вписывает клип в невидимый прямоугольник и считает границами клипа его контур.

Если заданная точка находится внутри клипа, метод hitTest возвращает значение 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, служащих для рисования различных линий и заливок. Графика, нарисованная с их помощью, называется созданной программно или просто программной графикой.

Перейти на страницу:

Похожие книги

SAP R/3 Системное администрирование
SAP R/3 Системное администрирование

Эта книга полностью обновлена и тщательно пересмотрена. Она является необходимым пособием для руководителей информационных служб, технических консультантов и системных администраторов R/3, которые хотят иметь полное представление об администрировании Basis.Знания, полученные "из первых рук" РѕС' различных специалистов SAP Global Support, работавших над реализацией более 20000 систем R/3, служат РѕСЃРЅРѕРІРѕР№ этой книги, которая научит выполнять все критически важные задачи системного администрирования с оптимальной эффективностью. Она учит быстро принимать правильные решения в сложных ситуациях, используя рекомендации экспертов и ценные рекомендации из реального мира, которые делают это уникальное РїРѕСЃРѕР±ие необходимым для повседневного использования.Кроме всего прочего, эта книга является ценным источником, помогающим подготовиться к экзамену СТС (Certified Technical Consultant) no R/3 Release 4.6C и Enterprise.Р' руководстве рассмотрены:# Настройка системной инфраструктуры.# Администрирование клиента.# Пользователи и полномочия.# Фоновая обработка.# Архивирование данных.# Администрирование спула.# Обслуживание инстанций.# Системный мониторинг.Р

Лиане Вилл , Сигрид Хагеман

Зарубежная компьютерная, околокомпьютерная литература
Цифровой журнал «Компьютерра» № 29
Цифровой журнал «Компьютерра» № 29

ОглавлениеБольшие новостиВиноватого в проблемах iPhone 4 уволили из Apple Автор: Михаил КарповВ Microsoft работают над новой мобильной ОС? Автор: Михаил КарповSkype проведёт первичное размещение акций на бирже Автор: Михаил КарповGoogle закупает беспилотники Автор: Юрий ИльинБилл Гейтс похоронил университеты Автор: Михаил КарповКосмические пираты уничтожили 1295 долларов Автор: Михаил КарповGoogle сговорился с телекомами Автор: Михаил КарповПолиция провела обыск корейского офиса Google Автор: Михаил КарповMicrosoft призывает не переходить на Mac Автор: Михаил КарповПланшет HP на основе WebOS появится в начале 2011 года Автор: Михаил КарповZeus: вирус, который грабит банки Автор: Юрий ИльинКак спасти Microsoft Автор: Андрей ПисьменныйОснователь 4chan рассказал суду о троллях и ньюфагах Автор: Михаил КарповПорностудия судится с пиратами Автор: Михаил КарповLenovo: четыре туза и джокер Автор: Юрий ИльинЧто Apple покажет на конференции в сентябре? Автор: Михаил КарповНа Android сделают телефон-игровую приставку Автор: Михаил КарповOracle атаковал Google и Android Автор: Юрий ИльинКому достанутся дополнительные частоты LTE Автор: Максим БукинТерралабПромзона: Гибридный велосипед Автор: Николай МаслухинСофт: Как настроить модем 3G в Ubuntu Автор: Крестников ЕвгенийПромзона: Походный фильтр для воды Автор: Николай МаслухинСофт: Как устранить эффект красных глаз в Pixelmator Автор: Скрылина СофьяПромзона: Энергетический фонтан Автор: Николай МаслухинСофт: Превращаем Firefox в удобный инструмент Автор: Роман БобылевПромзона: Сенсорный торговый автомат из Японии Автор: Николай МаслухинRaskin — попытка реализации масштабирующегося интерфейса Автор: Андрей ПисьменныйПромзона: Телефон с двумя экранами Автор: Николай МаслухинСофт: Как найти звезду с помощью Android Автор: Николай МаслухинСвоя играВасилий Щепетнёв: Эра Старика Прохазки Автор: Василий ЩепетневКафедра Ваннаха: Требуется военная клиометрия Автор: Ваннах МихаилКивино гнездо: В постели со шпионами Автор: Берд КивиВасилий Щепетнёв: Планы на будущее Автор: Василий ЩепетневКафедра Ваннаха: Свёртка реки Хроноса Автор: Ваннах МихаилИнтерактивАндрей Терехов (РУССОФТ) о русском аутсорсинге Автор: Ирина МатюшонокАналитик Михаил Елашкин о конфликте Oracle и Google Автор: Крестников ЕвгенийReaDitorialТехномир – новая мутация цивилизации Автор: Алексей СысоевИдентификация, абстрагирование, смысл Автор: Юрий ГуськовГолубятня-ОнлайнГолубятня: Интерактив №5 Автор: Сергей ГолубицкийГолубятня: Абсолютная власть Автор: Сергей ГолубицкийГолубятня: 20 килобайтиков Автор: Сергей Голубицкий

Журнал «Компьютерра»

Зарубежная компьютерная, околокомпьютерная литература