PDA

Просмотр полной версии : Возможно сделать click-hold-drag-unclick


Дмитрий.
30.07.2007, 12:31
Внутри главного movieclip'а лежит несколько неперекрывающихся movieclip'ов. Как можно реализовать эффект выделения movieclip'ов способом "клик-удерживая нажатой кнопку-тащить-отпустить"?

Сама функция выделения одного клипа реализована при нажатии (с параметром имени этого клипа).

Как в функцию передать имена клипов которые попали в этот прямоугольник выделения? (Можно ли поочередно ли их передавать в процессе перетаскивания удерживаемой кнопки мыши?)

Wolsh
30.07.2007, 16:36
my1_mc.trackAsMenu=true
my2_mc.trackAsMenu=true
my3_mc.trackAsMenu=true
my1_mc.onDragOver = function(){my_txf.text = this._name}
my2_mc.onDragOver = function(){my_txf.text = this._name}
my3_mc.onDragOver = function(){my_txf.text = this._name}
my1_mc.onRelease = function(){my_txf.text = this._name}
my2_mc.onRelease = function(){my_txf.text = this._name}
my3_mc.onRelease = function(){my_txf.text = this._name}

Дмитрий.
30.07.2007, 18:23
Если я правильно понял, так сработает, если курсор прошел над объектом? А ведь, когда выделяется часть объектов используя такой способ перетаскивания из угла в угол нажатой мыши, то не обязательно, чтобы курсор прошел над всеми объектами. Возможно реализовать?

kruasan
30.07.2007, 19:33
Кликаем,
двигаем мышь, удерживая левую кнопку. На onMouseMove можно отрисовывать прямоугольник выделения.
отпускаем, замеряем размеры прямоугольника выделения
в цикле проходимся по клипам и проверяем, попали они в прямоугольник или нет. Используем для этого свойства _x,_y,_width,_height либо ф-цию getBounds(). Если надо выделить частично попадающие в область выделения клипы, то используем для проверки hitTest()

Wolsh
31.07.2007, 09:43
А, я подумал у вас типа ряд кнопок или чтото в этом роде. А если такое стандартное для графических программ выделение - ну рисуйте действительно прямоугольник с заливкой альфа=0...15 и делайте пробежку по объектам на хитТест с этим прямоугольником. Тем более вам всёравно прямоугольник рисовать - надо же как то визуализировать для пользователя процесс выделения.

Дмитрий.
31.07.2007, 13:50
Да, у меня вроде стандартного выделения, и прямоугольник нужен. Только по приведенному kruasan алгоритму выделение будет после отпускания мыши. А можно сделать в процессе движения? (тогда надо предусмотреть что мышь может и обратно уйти, то есть и снять выделение сразу).
Но все равно спасибо!!!
Еще бы написать код... :)

Wolsh
31.07.2007, 14:28
Ну если объектов вообще не очень много то можно и в процессе, на onMouseMove делать хитТест. А код... ну надо. Мне вот тоже надо его писать не сегодня-завтра. Можете и подождать :) но лучше всеже учиться

Дмитрий.
31.07.2007, 14:44
Да учиться хорошо, но на учебу времени нет. Единственный выход - заказать за деньги код

KPOT
31.07.2007, 18:56
хорошая тема :) заставила покрутить себе яйца примерно 4ы часа) в универе учился плохо, дабы не засорять и так крупный наш портал очередной новой темой, давайте тут попросим велих мастеров тригонометрии выложить работающий скрипт, или алгоритм, как вам удобней, с названием - Принадлежность точек многоугольнику, как выпуклому так и нет.

"Просьба по теме", достойного ответа на просторох интернета я не нашел.

Прежде чем чтото выкладывать проверьте....