Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Возможно сделать click-hold-drag-unclick (http://www.flasher.ru/forum/showthread.php?t=99156)

Дмитрий. 30.07.2007 12:31

Возможно сделать click-hold-drag-unclick
 
Внутри главного 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ы часа) в универе учился плохо, дабы не засорять и так крупный наш портал очередной новой темой, давайте тут попросим велих мастеров тригонометрии выложить работающий скрипт, или алгоритм, как вам удобней, с названием - Принадлежность точек многоугольнику, как выпуклому так и нет.

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

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


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

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