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

блогер
Регистрация: Jan 2010
Адрес: Киев
Сообщений: 156
Записей в блоге: 4
Отправить сообщение для ps_spectre с помощью Skype™
Вот простой пример, написанный на коленке, где все работает как надо:
Код AS3:
package 
{
	import flash.display.DisplayObject;
	import flash.display.MovieClip;
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.events.MouseEvent;
 
	[SWF(width=640,height=480,backgroundColor=0xffffff,frameRate=60)]
	public class Main extends Sprite 
	{		
		private var _x:Number = 100;
		private var _y:Number = 100;		
		private var _angle:Number = 0;
		private var _container:Sprite;
 
		public function Main():void 
		{
			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);
 
			var s:Shape = new Shape();
			s.graphics.lineStyle(2, 0x990000);
			s.graphics.drawCircle(20, 20, 20);
			s.graphics.moveTo(20, 20);
			s.graphics.lineTo(40, 20);
			s.x = (-s.width / 2) + 1;
			s.y = (-s.height / 2) + 1;			
 
			_container = new Sprite();
			_container.addChild(s);
			_container.x = _x;
			_container.y = _y;
 
			addChild(_container);			
			stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove);			
		}		
 
		private function mouseMove(e:MouseEvent):void
		{			
			var xl:Number = e.stageX - _container.x;
			var yl:Number = e.stageY - _container.y;			
			_angle = (Math.atan2(yl, xl)) * (180 / Math.PI);						
			_container.rotation = _angle;
			e.updateAfterEvent();
		}		
	}	
}