Форум 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=163856)

Max360 12.08.2011 01:50

Объекты под перетаскивающимся
 
Здравствуйте. Посмотрел, тем на эту тему не так уж и много, и к сожалению, не нашел подходящей мне. Вообщем, у меня есть объект, который я перетаскиваю на сетку (таблица из квадратных мувиков), он накрывает несколько объектов. Мне нужно знать какие именно мувики он накрыл в данный момент.

СлаваRa 12.08.2011 01:56

Как устроен проект, что представляет из себя сетка, зачем она нужна?
Где размещаются искомые объекты и тот что таскаете?

Max360 12.08.2011 02:00

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

expl 12.08.2011 02:39

1. Можно использовать getObjectUnderPoint, и в выдаваемом им списке искать маленькие мувики. Однако, если в этих мувиках еще что-то лежит, то придется рыться и в родителях того, что выдал getObjectUnderPoint.
2. Можно тупо использовать математику:
Код AS3:

var cellColumn:int = Math.floor(cellContainer.mouseX / cellWidth);
var cellRow:int = Math.floor(cellContainer.mouseY / cellHeight);
var cell:MovieClip = _cells[cellColumn][cellRow];

3. Можно, в конце концов, слушать события MouseEvent.ROLL_OVER и MouseEvent.ROLL_OUT в каждой ячейке и подсвечивать ее по этим событиям, сделав перетаскиваемый корабль прозрачным для мыши;

Наиболее привлекательным в плане гибкость/простота кажется вариант 2.

Max360 12.08.2011 02:53

может я ошибаюсь, но я так понял что код выдаст мне только одну клетку, над которой находиться стрелочка. А мне нужны все объекты (клетки) над которыми находиться кораблик. Я, впринцепе, предполагаю, что можно с помощью математики рассчитывать, но я надеялся, что есть какие-то более красивые решения, вплане dropTarget. (но он тоже хреновато работает)

Zolza 12.08.2011 05:37

Цитата:

Сообщение от Max360 (Сообщение 1020637)
может я ошибаюсь, но я так понял что код выдаст мне только одну клетку, над которой находиться стрелочка. А мне нужны все объекты (клетки) над которыми находиться кораблик

Вам должна быть известна форма корабля и его ориентация в пространстве. Зная это не составит труда посчитать соседние клетки

Max360 12.08.2011 11:31

я понял, спасибо )))


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

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