Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Отключается MOUSE_UP (http://www.flasher.ru/forum/showthread.php?t=180072)

Svetlov 26.05.2012 21:40

Отключается MOUSE_UP
 
Всем доброго дня.

Есть 64 спрайта расположенные в колонки по 8(клетки шахматной доски), эти спрайты хранятся в массиве.
В первые и в последние 16 спрайтов массива добавлены спрайты фигур.
При событии MOUSE_DOWN на любой из фигур происходит this.startDrag(); на MOUSE_UP соотвественно this.stopDrag();
Также на MOUSE_UP происходит "передача" спрайта фигуры от клетки родителя к клетке this.dropTarget.

Фигуры перетаскиваются нормально, но если я пытаюсь перетащить скажем пешку на клетку на которой она стояла до предыдущего перетаскивания событие MOUSE_UP не возникает, также она не перетаскивается на все клетки которые находятся ниже ее(визуально на доске), фактически находятся в большем чем она индексе массива клеток доски.

Возможно это связано с какими-то тонкостями обработки событий actionscript 3. Пишу на этом языки неделю, поэтому вряд ли смогу справиться с таким глюком самостоятельно при помощи гугла. Помогите плз.

UPD: Добавил MOUSE_OVER в классе клетки и когда тащишь фигуру то оно срабатывает на тех клетках на которых не срабатывает MOUSE_UP которое висит на фигурах, а на тех на которых MOUSE_UP срабатывает не работает MOUSE_OVER. Чувствую что тут напрашивается какой-то вывод... но вот какой только.

Wolsh 26.05.2012 22:22

Слушайте MOUSE_UP от стейджа.

Svetlov 26.05.2012 22:41

Wolsh

Спасибо, заработало. Выдает правда пару ошибок типа -

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Figure/boardGlue()
at Figure/onmouseup()

Но с этим я думаю я как-нибудь справлюсь.

Из того что оно заработало можно сделать вывод что у событий есть область... видимости чтоли?

Партизан 26.05.2012 23:05

На какой объект вы вешаете события MOUSE_UP/DOWN?

Добавлено через 39 секунд
упс...

Svetlov 26.05.2012 23:16

Партизан

Вешал на объект фигуры, которая в свою очередь является ребенком от клетки а клетка от доски а доска от stage уже.

Wolsh

Перевесил на доску, все работает ок. Правда пока не совсем понимаю почему) Может ссылочку на тему подкинете?

Wolsh 26.05.2012 23:33

У событий есть источник. Совершенно неожиданно его же называют и целью (target) :)
А вообще Вы правы, рассказывать это все мучительно долго.
Читайте Колина Мука или другие книги, про События и про Список отображения (дисплей лист).
Это необходимейшие базовые знания. Без них просто никуда.

Svetlov 26.05.2012 23:48

Wolsh

Спасибо, обязательно почитаю.

strangedk 26.05.2012 23:52

А в чем плюс использовать фигуру как child'a клетки?

интересно просто

Svetlov 27.05.2012 02:53

strangedk

Боюсь продолжение этого разговора может завести меня в дебри в которых я пока мало чего понимаю. Поэтому пожалуй промолчу)

elder_Nosferatu 27.05.2012 05:14

Цитата:

Сообщение от strangedk (Сообщение 1081586)
А в чем плюс использовать фигуру как child'a клетки?

интересно просто

Наверное проще просчитать координаты центра клетки для размещения фигури, нежели по положению клетки расчитать ее центр в системе координат доски :) Иногда ловишь "эврику" за хвост и, ослепленный удачей, не замечаешь альтернативы...


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

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