Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не правильно срабатывает Event.MOUSE_LEAVE (http://www.flasher.ru/forum/showthread.php?t=150585)

Dragon rideR 14.02.2011 15:05

Не правильно срабатывает Event.MOUSE_LEAVE
 
Подскажите пожалуйста не правильно срабатывает Event.MOUSE_LEAVE, теоретически он должен сработать когда курсор покидает флэшку, а у меня он срабатывает когда курсор покинул флэшку и я отпустил кнопку.
Код AS3:

private function onDown(e:Event)
                {
                        //подписываем на отпускание мыши и покидание экрана
                        //stage.addEventListener(MouseEvent.MOUSE_UP, onUp, false, 0, true);
                        stage.addEventListener(Event.MOUSE_LEAVE, onUp, false, 0, true);
                        stage.addEventListener(MouseEvent.MOUSE_MOVE, drawFon, false, 0, true);
                        var bounds:Rectangle=new Rectangle(rectX, rectY, rectWidth, rectHeight);
                        Params.game.startDrag(false, bounds);
                }
        private function onUp(e:Event)
                {
                        stage.removeEventListener(MouseEvent.MOUSE_UP, onUp);
                        stage.removeEventListener(Event.MOUSE_LEAVE, onUp);
                        stage.removeEventListener(MouseEvent.MOUSE_MOVE, drawFon);
                        this.stopDrag();
}


nOobCrafter 14.02.2011 15:31

это нормальное явление. При нажатии можно подписаться на ентерфрейм и отслеживать координату курсора.

Dragon rideR 14.02.2011 15:58

спасибо помог

Omar2002 06.06.2011 15:44

Спасибо - тоже помогло :)

alatar 06.06.2011 16:30

Цитата:

При нажатии можно подписаться на ентерфрейм и отслеживать координату курсора.
Лучше на MOUSE_MOVE, зачем каждый фрейм следить?

nOobCrafter 06.06.2011 20:07

Цитата:

зачем каждый фрейм следить?
затем что мышкой двигаем чаще нежели происходит ентерфрейм.

alatar 06.06.2011 20:23

Цитата:

Сообщение от nOobCrafter (Сообщение 1001667)
затем что мышкой двигаем чаще нежели происходит ентерфрейм.

Чаще, события мыши, приходить просто "физически" не смогут. Флеш-плеер на такое не способен. Но в отличие от ENTER_FRAME, мышка может и не двигаться.

gloomyBrain 06.06.2011 20:47

Цитата:

Чаще, события мыши, приходить просто "физически" не смогут
Смогут и будут происходить. И будут висеть в очереди, пока не наступит новый кадр и их не обработают. При этом есть вполне осязаемый шанс выполнять один и тот же код обработчика 2-3 раза за кадр (рано как и ни одного раза)

tsarapkabel 06.06.2011 21:20

Цитата:

Сообщение от alatar (Сообщение 1001673)
Чаще, события мыши, приходить просто "физически" не смогут. Флеш-плеер на такое не способен. Но в отличие от ENTER_FRAME, мышка может и не двигаться.

updateAfterEvent как раз и предназначен для того, чтобы события обрабатывались чаще чем ENTER_FRAME, я правильно понимаю?

Hidest 06.06.2011 21:51

Цитата:

Сообщение от tsarapkabel (Сообщение 1001680)
updateAfterEvent как раз и предназначен для того, чтобы события обрабатывались чаще чем ENTER_FRAME, я правильно понимаю?

Он нужен чтобы принудительно отрисовать экран при наступлении события.


Часовой пояс GMT +4, время: 06:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.