Просмотр полной версии : Возможно сделать click-hold-drag-unclick
Дмитрий.
30.07.2007, 12:31
Внутри главного movieclip'а лежит несколько неперекрывающихся movieclip'ов. Как можно реализовать эффект выделения movieclip'ов способом "клик-удерживая нажатой кнопку-тащить-отпустить"?
Сама функция выделения одного клипа реализована при нажатии (с параметром имени этого клипа).
Как в функцию передать имена клипов которые попали в этот прямоугольник выделения? (Можно ли поочередно ли их передавать в процессе перетаскивания удерживаемой кнопки мыши?)
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
Если я правильно понял, так сработает, если курсор прошел над объектом? А ведь, когда выделяется часть объектов используя такой способ перетаскивания из угла в угол нажатой мыши, то не обязательно, чтобы курсор прошел над всеми объектами. Возможно реализовать?
Кликаем,
двигаем мышь, удерживая левую кнопку. На onMouseMove можно отрисовывать прямоугольник выделения.
отпускаем, замеряем размеры прямоугольника выделения
в цикле проходимся по клипам и проверяем, попали они в прямоугольник или нет. Используем для этого свойства _x,_y,_width,_height либо ф-цию getBounds(). Если надо выделить частично попадающие в область выделения клипы, то используем для проверки hitTest()
А, я подумал у вас типа ряд кнопок или чтото в этом роде. А если такое стандартное для графических программ выделение - ну рисуйте действительно прямоугольник с заливкой альфа=0...15 и делайте пробежку по объектам на хитТест с этим прямоугольником. Тем более вам всёравно прямоугольник рисовать - надо же как то визуализировать для пользователя процесс выделения.
Дмитрий.
31.07.2007, 13:50
Да, у меня вроде стандартного выделения, и прямоугольник нужен. Только по приведенному kruasan алгоритму выделение будет после отпускания мыши. А можно сделать в процессе движения? (тогда надо предусмотреть что мышь может и обратно уйти, то есть и снять выделение сразу).
Но все равно спасибо!!!
Еще бы написать код... :)
Ну если объектов вообще не очень много то можно и в процессе, на onMouseMove делать хитТест. А код... ну надо. Мне вот тоже надо его писать не сегодня-завтра. Можете и подождать :) но лучше всеже учиться
Дмитрий.
31.07.2007, 14:44
Да учиться хорошо, но на учебу времени нет. Единственный выход - заказать за деньги код
хорошая тема :) заставила покрутить себе яйца примерно 4ы часа) в универе учился плохо, дабы не засорять и так крупный наш портал очередной новой темой, давайте тут попросим велих мастеров тригонометрии выложить работающий скрипт, или алгоритм, как вам удобней, с названием - Принадлежность точек многоугольнику, как выпуклому так и нет.
"Просьба по теме", достойного ответа на просторох интернета я не нашел.
Прежде чем чтото выкладывать проверьте....
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.