|
|
|||||
Регистрация: Sep 2010
Сообщений: 49
|
Поворот объекта за мышкой
Здравствуйте.Такой вопрос как заставить обьект,например прямоугольник поворачиваться вокруг своей оси за мышкой.При этом чтобы он оставался на своем месте.Спасибо.
|
|
|||||
эта тема стопицот раз обсуждалась (поиск лучше использовать)
вот быстренько код накидал, один из вариантов, как можно сделать. (можно и по-другому, например draw и матрицы поворота использовать) import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.Point; [SWF(width=500, height=400, frameRate=31)] public class Rectangle extends Sprite { private var _rect:Sprite; private var _rectContainer:Sprite; private var _size:int = 100; private var _x:Number = 300.0; private var _y:Number = 200.0; public function Rectangle() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { if (hasEventListener(Event.ADDED_TO_STAGE)) removeEventListener(Event.ADDED_TO_STAGE, init); _rect = new Sprite(); _rect.graphics.beginFill(0x175BC1); _rect.graphics.drawRect(0, 0, _size, _size); _rect.graphics.endFill(); _rect.graphics.beginFill(0x8D23B6); _rect.graphics.drawCircle(_size -10, _size / 2, 10); _rect.x = -_size/2; _rect.y = -_size/2; _rectContainer = new Sprite(); _rectContainer.addChild(_rect); _rectContainer.x = _x; _rectContainer.y = _y; addChild(_rectContainer); stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); } private function mouseMoveHandler(e:MouseEvent):void { var dx:Number = e.stageX - _x; var dy:Number = e.stageY - _y; var angle:Number = Math.atan2(dy, dx) * 180 / Math.PI; _rectContainer.rotation = angle; } } |
|
|||||
Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
|
Пакет потерял.
|
|
|||||
Регистрация: Sep 2010
Сообщений: 49
|
Спасибо.Я в поиске искал да чет как то все не то,может не корректно вводил.Спасибо.
|
|
|||||
Регистрация: May 2009
Сообщений: 20
|
а если задачу немного усложнить. нужен плавный поворот к точке с заданной скоростью.
есть у кого-нибудь нормальный вариант? а то у меня фигня какая-то получается, а именно на переходе через 0 градусов |
|
|||||
Цитата:
|
|
|||||
попробуйте твинет какой нибудь
|
|
|||||
Регистрация: May 2009
Сообщений: 20
|
samana, о, большое спасибо.
теперь я знаю, что делал правильно =). видимо проще уже некуда. |
Часовой пояс GMT +4, время: 18:19. |
|
« Предыдущая тема | Следующая тема » |
|
|