Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Перетаскивание мышью. (http://www.flasher.ru/forum/showthread.php?t=137385)

cpu 12.03.2010 01:39

Перетаскивание мышью. Event.MOUSE_LEAVE.
 
На заголовок не смотрите, так назвал для поисковиков. А то все называют "Помогите плиз..."

Код AS3:

public function Background() {
                        addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown);
                        addEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
                        stage.addEventListener(Event.MOUSE_LEAVE, handleMouseLeave);
                }
                private function handleMouseUp(e:Event):void {
                                this.stopDrag();
                }
                private function handleMouseDown(e:Event):void {
                                  ...
                        this.startDrag(false, dragRect);
                }
                private function handleMouseLeave(e:Event):void {
                        this.stopDrag();
                }
        }
}

При таком коде есть глюк(или фича :confused:):
При перетаскивании нажатой кнопкой мыши(т.е. нажал и не отпустил), и отводе курсора за stage и отпускании кнопки, перетаскиваемый объект как бы прыгает.

dimarik 12.03.2010 02:18

Цитата:

Сообщение от cpu (Сообщение 892550)
На заголовок не смотрите, так назвал для поисковиков. А то все называют "Помогите плиз..."

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

Добавлено через 2 минуты
Смешно, но только на четвертой странице увидел необходимое.
Вы уж нас с напору не пугайте, пожалуйста.

cpu 12.03.2010 02:43

Цитата:

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

Когда я писал свой пост, понимал, что ответом будет отсыл в FAQ.
НО: Я искал в FAQ, и не нашел.
Я искал в поиске по сайту, и не нашел.
Я искал просто в гугле, так как понимал, что вопрос скорее всего часто задваем, и НЕ НАШЕЛ:wacko:
И от грустной безисходности, решился написать здесь.

Помогите плиз...

dimarik 12.03.2010 02:49

Подняли дятьку. Ушел искать. Но это не избавляет Вас от ока etc. Вот завтра он придет и прикроет тему ) Ладно, я быстро.

Добавлено через 13 минут
Пока надыбал во втором результате поиска по MOUSE_LEAVE. Первый результат - наш.

Добавлено через 16 минут
Вот совсем забыл. А Ваш вопрос в чем заключался? А то мне даже из контекста поста не понятно.

Добавлено через 19 минут
Вот еще результат.

Добавлено через 21 минуту
А вот это вроде как противоречит пердыдущему.

cpu 12.03.2010 03:11

Код:

Вот совсем забыл. А Ваш вопрос в чем заключался? А то мне даже из контекста поста не понятно.
надыбал - здесь он четко описал, что происходит
Цитата:

, (!) при отпускании кнопки мыши за пределами флэшки мувик перескакивает на один уровень с мышкой по соответствующей оси 0о
Не напрягает... но прикольно — выходит координаты пасет,
.
Вот, а меня это напрягает, отпускаешь кнопку мыши за пределами флешки, и перетаскиваемый объект прыгает в те координаты, нельзя ли как-то убрать этот эффект (фичу)?

dimarik 12.03.2010 03:12

А как бы как он прыгает, Ваш объект? Как бы куда?

Добавлено через 2 минуты
Уже понял )

Добавлено через 3 минуты
Эм. А каким должно быть прогнозизуемое Вами поведение мувика?

cpu 12.03.2010 03:17

Цитата:

Как бы куда?
- в координаты, где я отпустил кнопку мыши. Даже не знаю как описать словами.
Нажал на объект, и тащу его(кнопку не отпускаю), курсор вышел за пределы флешки, объект перестал перетаскиваться, курсор мыши еще двигаю, кнопку не отпустил. И в момент, когда отпускаю кнопку мыши, объект как бы опомнился и резко переместился в координаты, где я отпуустил кнопку мыши.

Добавлено через 2 минуты
Цитата:

Эм. А каким должно быть прогнозизуемое Вами поведение мувика?
- так как происходит событие Event.MOUSE_LEAVE, должно срабатывать stopDrag(), и перетаскивание должно закончится, в независимости отпустил я кнопку, или нет. А здесь получается, он до сих пор отслеживает курсор мыши, и в момент отпускания почему-то (в голову не приходит почему), перемещает туда объект.

Добавлено через 8 минут
Прояснилось кое что. Если при отводе курсора мыши за пределы флешки, и при этом кнопка мыши не отпущена, событие Event.MOUSE_LEAVE не происходит.

dimarik 12.03.2010 03:28

Цитата:

Сообщение от dimarik (Сообщение 892559)
Добавлено через 19 минут
Вот еще результат.

Добавлено через 21 минуту
А вот это вроде как противоречит пердыдущему.

Первая ссылка. Надеюсь, что Вы поняли, что поиск таки рулит.

Пойду, справку посмотрю ).

cpu 12.03.2010 03:32

Цитата:

Надеюсь, что Вы поняли, что поиск таки рулит.
- да в голову не пришло, что в поиске надо Event.MOUSE_LEAVE вбить. Как обычно проблемы в неправильной постановке вопроса. Мой косяк.

dimarik 12.03.2010 03:36

Посмотрел спраку. Никогда бы сам не подумал, что MOUSE_LEAVE есть статик константа Event класса. Видать, у адоба тоже тяжелая работа )
Ну не приходила ко мне работа с этим LEAVE )


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

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