![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Sep 2006
Сообщений: 453
|
В TransformTool от senocular надо реализовать переход точки регистрации, то-есть когда тяну за левый маркер, надо чтобы точка регистрации перешла вправо, если за верхний, тогда вниз итд. Чтобы картинка увеличивалась с противоположной стороны. Как я понимаю за переход точки отвечает reg.defaultUV = new Point(.5, 0); но как добавить слушатель на TransformTool и определить какой маркер активный?
transform1 = new TransformTool( new ControlSetStandard()) var reg:RegistrationManager = new RegistrationManager(); reg.defaultUV = new Point(.5, .5); // centered registration point transform1.registrationManager = reg; transform1.target = clipActiv; //transform1.skewEnabled = true; //transform1.addEventListener(TransformTool.CONTROL_DOWN, controlMouseDown, false, 0, true); MovieClip(parent).addChild( this ) MovieClip(parent).addChild( transform1 ) Последний раз редактировалось 54321go; 10.05.2012 в 22:57. |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 453
|
Может есть идеи как сделать чтобы точка переходила к противоположному концу?
Добавлено через 1 час 7 минут есть ещё готовый компонент который подходит но в нем выдает здесь ошибку проблема с UIComponent у меня flex 4.6 а он во втором был. Что можно сделать? |
|
|||||
|
глянь как вариант, по событию нажатия на контрол, смотрим в каком углу нажали и двигаем точку регистрации в противоположный, довольно складно выходит
но я игрался с какой-то из старых версий - 0.9.10, положил ее в архив тоже |
|
|||||
|
сори, что-то перемудрил с исключением контрола самой точки регистрации
вот так обработчик должен выглядеть, чтоб все работало private function tool_controlDown(e:Event):void { var targ:DisplayObject = _tool.target; var mp:Point = new Point(targ.mouseX, targ.mouseY);// позиция мыши внутри объекта var b:Rectangle = targ.getBounds(targ);// внутренние габариты объекта var c:Point = new Point(b.left + b.width / 2, b.top + b.height / 2);// внутренний центр var op:Point = new Point(mp.x < c.x ? b.right : b.left, mp.y < c.y ? b.bottom : b.top);// противополжный угол _tool.registration = targ.localToGlobal(op);// точка в координатах stage } |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|