Показать сообщение отдельно
Старый 08.12.2010, 13:52
ps_spectre вне форума Посмотреть профиль Отправить личное сообщение для ps_spectre Найти все сообщения от ps_spectre
  № 2  
Ответить с цитированием
ps_spectre
 
Аватар для ps_spectre

блогер
Регистрация: Jan 2010
Адрес: Киев
Сообщений: 156
Записей в блоге: 4
Отправить сообщение для ps_spectre с помощью Skype™
эта тема стопицот раз обсуждалась (поиск лучше использовать)
вот быстренько код накидал, один из вариантов, как можно сделать. (можно и по-другому, например draw и матрицы поворота использовать)
Код AS3:
 
	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;
		}
 
	}