Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 04.01.2014, 15:21
Sonet вне форума Посмотреть профиль Отправить личное сообщение для Sonet Найти все сообщения от Sonet
  № 1  
Ответить с цитированием
Sonet

Регистрация: Apr 2012
Сообщений: 44
По умолчанию Перемещение, ресайзинг и т.п. объектов с помощью мыши.

Здравствуйте.
Необходимо сделать некий компонент, который поддерживает рисование в нем прямоугольников их перемещение и изменение размеров. Все с помощью мыши. Несмотря на то, что задача довольно простая - у меня возникли с ней некоторые трудности.
Я год не разрабатывал на флексе, поэтому первым делом появилась такая идея: иметь некий контейнер фиксированного размера; иметь некий компонент, который будет отвечать за отрисовку прямоугольников их перемещение и изменение размеров, будет помещаться в описанный ранее контейнер и занимать всю его высоту и ширину. В компоненте-прямоугольнике я хотел в mxml описать собственно сам прямоугольник и 4 квадрата по бокам, которые будут выполнять роль рамки для ресайзинга, как-то по-хитрому забайндить их координаты и размеры между собой и применить стандартный механизм пермещения - startDrag/stopDrag. Тут же всплыл первый подводный камень - во время перетаскивания координаты объекта не меняются (ведь создается временный объект) и соответственно координаты и размерности прямоугольника не обновляются.
Хорошо. Я написал свою обработку событий мыши в компоненте-прямоугольнике. Сейчас имеется различие нажатий на рамку, прямоугольник, перемещение, ресайзинг и т.п. Но, всплыл другой "косяк" - компонент-прмоугольник занимает всю ширину/высоту контейнера, в то время как сам прямоугольник внтри него мал. Т.е. у меня огромная прозрачная зона, которая либо перехватывает все события от мыши, либо нет. В первом случае из всех компонентов-прямоугольников из контейнера я могу работать только с одним ("верхним"). Во втором при захвате и перемещении рамки или границы курсор часто выходит за пределы отрисованной зоны и попадает в зону прозрачности, которая событий от мыши не получает и соотвественно происходят застревания.

Как лучше всего решить поставленную задачу? Могу предоставить код, который я уже написал.

Создать новую тему   Часовой пояс GMT +4, время: 11:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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