flashdocs.net: все о macromedia flash 5, mx, 2004 pro, 8. Обучение: flash статьи flash уроки flash исходники flash софт, faq, а также flash мульты и flash игры
Все о Macromedia Flash 8 mx 2004 pro! Все о Flash! Обучение flash уроки, flash статьи, flash исходники, flash soft, flash форум, flash документация и многое другое! Все что нужно будущему flasher.
     
 Навигация

Главная

:Обучение:

Статьи
Уроки
Исходники
Flash-Софт
FAQ

:Flash-развлечения:

Flash-игры
Flash-мульты



:Добавить на сайт:


Уроки
Исходники и Flash-soft
Новость
Ссылку
Мульт или игру


:Разделы:

Форум
Ссылки
Управление аккаунтом
Поиск

:Услуги сайта:

Платные услуги сайта
 Поиск
Поиск по сайту

 Баннеры

Вы можете разместить наш баннер на своем сайте. У нас есть баннеры различных размеров и форматов.

Пример

[ все баннеры ]
 Друзья
> Flash Blog
> Верстка и Дизайн
> Документация ко всему
> Flash-Город!
Pages

Разное о Flash

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


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

В нашем случае, однако, все намного проще. Разработчики Flash предусмотрели особый метод объекта moviec

lip - hitTest. С его помощью вы можете проверять, находится ли заданная точка внутри клипа, или касаются ли друг друга два отдельных клипа.

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

>. hitTest (, , ) ;

Как вы уже поняли, первые два параметра задают соответственно горизонтальную и вертикальную координату нужной вам точки. Третий параметр имеет логический тип и позволяет задать, что считать границами клипа: его контур (значение true) или окружающий его прямоугольник (значение

false).

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

, но, вероятно, она тоже иногда нужна, если разработчики Flash включили ее в свое творение.

Второй формат метода hitTest позволит вам проверить совпадение двух различных клипов, т. е. накладываются они или перекрываются:

. hitTest () ;

В смысле передаваемых параметров здесь все ясно. И возвращаемое значение то же самое.

Имейте в виду, что метод hitTest, записанный во втором формате, проверяет "попадание" не фигуры в фигуру, а воображаемого прямоугольника, описанного вокруг первой фигуры, в воображаемый прямоугольник, описанный вокруг второй фигуры. Следовательно, этот метод ведет себя так, словно несуществующий третий его параметр равен false.

Теперь осталось проверить работу метода. Создайте новый образец-клип со сложной фигурой, поместите его экземпляр на рабочий лист, сделайте его поменьше и назовите cursor. К первому (и единственному) кадру фильма привяжите следующий небольшой сценарий:

_root. cursor. startDrag ( true );

Этот сценарий заставляет клип cursor двигаться за мышью. Немного изменим обработчик события enterFrame для клипа hit:

onClipEvent (enterFrame) {

if ( this. hitTest (_root. cursor )) {

this._alpha = 50;

} else {

this._alpha = 100;

}

}

Как видите, здесь было сделано одно-единственное изменение (выделено полужирным шрифтом). Мы поменяли формат вызова метода hitTest. Теперь можно проверить, как все это работает.




Скачать исходник к данной статье



Автор: GRINDERS

Дата публикации: 2004-09-17 (1694 Прочтено)

Остальные материалы раздела Разное о Flash
  • Перетаскивание Drag'n'Drop
  • Изменение параметров встроенных клипов (MovieClip)
  • Обработчики событий MovieClip
  • Перемещение объекта к указанной точке
  • Команды обмена информании межу JAVA, FScommand
  • Трассировка
  • Скроллинг текста
  • Как управлять объектом в Flash фильме через клавиатуру
  • If- условный оператор
  • Переменные Actions Script

    [ Назад | Начало ]

  • Created by GRINDERS © 2002
    Copyright © flashdocs.net 2002-2005
    Внимание! Материалы с нашего портала брать для своего сайта без разрешения главного администратора КАТЕГОРИЧЕСКИ ЗАПРЕЩАЕТСЯ!
    Портальная система edogs-nuke
    15 запросов к базе данных.
    Карта сайта, каталог сайтов

    Rambler's Top100