Обнаружение пересечений
Можно использовать hitTest метод объекта MovieClip для обнаружение пересечений в клипе. Метод hitTest определяет пересекается ли объект с другим муви-клипом и возвращает булеановское (Boolean) значение true или false. Можно использовать параметры метода hitTest для определения x и y hit-координат (области нажатия) или использовать target path (путь до цели - прямее ничего не придумалось) другого муви-клипа как hit-область.
Каждый муви-клип во флеш-клипе есть копия (instance - образец) объекта MovieClip. Это позволяет вызывать методы объекта из любого мувика, как указано ниже:
myMovieClip.hitTest(target);
Возможно использование метода hitTest для проверки пересечения муви-клипа с отдельной точкой.
Подвигайте мышом по поверхности клипа. Результат работы hitTest смотрите в текстовом поле.
Также можно использовать метод hitTest для проверки пересечения двух мувиков.
Потаскайте сферу, результат работы hitTest см. в текстовом поле.
Проверка на пересечение муви-клипа и отдельной точки:
1 | Выделить мувик на рабочем поле. |
2 | Выбрать Window > Actions для открытия панели команд. |
3 | Дважды щелкнуть на команде trace расположенной в категории Actions списка команд. |
4 | Поставить галочку в Expression check box и ввести следующее выражение в строку Expression (Выражение): |
trace (this.hitTest(_root._xmouse, _root._ymouse, true); | |
Этот пример использует _xmouse и _ymouse свойства как x и y координаты hit-области и в режиме теста клипа отсылает полученный результат в окно Output. Можно положить в клип текстовое поле и отображать результаты в нем или анализировать их при помощи if оператора. | |
5 | Выбрать Control > Test Movie и подвигать мышом по клипу, чтобы увидеть результат теста. |
Проверка на пересечение двух муви-клипов:
1 | Расположить два мувика на рабочем поле и присвоить им имена mcHitArea и mcDrag. |
2 | Создать текстовое поле и в строке Variable (переменная) панели Text Options, присвоить ему имя status. |
3 | Выделить mcHitArea и выбрать Window > Actions. |
4 | Дважды щелкнуть на команде evaluate в списке команд. |
5 | Ввести следующий код в строку Expression (выражение), выбирая нужные составляющие из верхнего списка: 1 |
_root.status=this.hitTest(_root.mcDrag); | |
6 | Выбрать команду onClipEvent и задать ей enterFrame как событие. |
7 | Выделить mcDrag и выбрать Window > Actions. |
8 | Дважды щелкнуть startDrag в списке команд. |
9 | Включить опцию Lock Mouse to Center. |
10 | Выбрать команду onClipEvent и задать ей событие Mouse down. |
11 | Дважды щелкнуть stopDrag в списке команд. |
12 | Выбрать onClipEvent и задать ей событие Mouse up. |
13 | Запустить в режиме теста Control > Test Movie и подвигать мышом, чтобы посмотреть на результат. |
Для получения большей информации о методе hitTest, см. соответствующий подраздел ActionScript Словаря.
Oт переводчика:
- Можно просто напечатать эту строку на клавиатуре, еще лучше скопировать с этой страницы и вставить через буфер обмена :)
Совет: если вставлять через буфер, то не следует копировать закрывающие выражение точку с запятой (";"). Скриптовый флеш-редактор вставляет их автоматом.