Показать сообщение отдельно
Старый 19.10.2006, 13:23
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 52  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
По умолчанию 57. Создание события mouseWithin (мышка внутри)

В Director Lingo есть удобное событие mouseWithin, которое генерится каждый фрейм, если мышь находится в пределах мувиклипа. Это событие довольно просто реализовать на ActionScript 3. (Конечно можно и на ActionScript 1 или 2, но придется заюзать методы onRollOver и onEnterFrame, а они могут понадобиться и для других целей. В AS3 такой проблемы нет, т.к. вы можете на одно событие навесить сколько угодно слушателей.)
Итак, для реализации события mouseWithin нужно, по событию входа мышки на мувиклип подключиться к событию enterFrame и рассылать каждый фрейм mouseWithin, пока мышь не покинет пределы мувиклипа.
Код:
// Реализация события mouseWithin
private function addMouseWithin(event:MouseEvent):void {
    addEventListener(Event.ENTER_FRAME, mouseWithin);
}
private function removeMouseWithin(event:MouseEvent):void {
    removeEventListener(Event.ENTER_FRAME, mouseWithin);
}
private function mouseWithin(event:Event):void {
    dispatchEvent(new MouseEvent("mouseWithin"));
}

// В конструкторе
public function MySpriteClass() {
    addEventListener(MouseEvent.MOUSE_OVER, addMouseWithin);
    addEventListener(MouseEvent.MOUSE_OUT, removeMouseWithin);
}
Для обработки такого события просто добавьте слушателя:
Код:
addEventListener("mouseWithin", mouseWithinHandler);
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.