Я просто бросил этот супер простой пример кода в рамочный скрипт Flash CS4 IDE, но он ничего не выводит в консоль.Я просто наведите курсор мыши на окно, ничего не щелкая, и ничего не происходит.Почему это не работает так, как я ожидаю?
stage.addEventListener(Event.MOUSE_LEAVE, traceMouse);
function traceMouse(Evt:Event):void
{
trace("Mouse Left Stage");
}
________________________________________________
[EDIT] Я считаю Event.MOUSE_LEAVE невероятно бесполезным.Во-первых, он не работает в среде тестирования (по крайней мере, на Flash CS4 для Mac OS X).во-вторых, он не срабатывает, если MouseEvent.MOUSE_DOWN в данный момент активен:
Справочник по языку Flash CS4 Professional ActionScript 3.0:
Обновлено 8/11/09: добавлена квалификация этого событияне срабатывает при нажатии кнопки. 1
в моей конкретной ситуации я хотел, чтобы MOUSE_LEAVE срабатывал во время перетаскивания объекта, чтобы в случае, если пользователь перетаскивает его / ееуказатель мыши за сценой запускает stopDrag ().поскольку это невозможно, я решил использовать MOUSE_OUT для реального объекта, а не MOUSE_LEAVE для родительского объекта или рабочей области.
private function mouseDownHandler(evt:MouseEvent):void
{
object.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
object.startDrag(false, pullBounds);
}
private function mouseUpHandler(evt:MouseEvent):void
{
object.removeEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
object.stopDrag();
}
private function mouseOutHandler(evt:MouseEvent):void
{
object.stopDrag();
}