Показать сообщение отдельно
Старый 08.04.2012, 20:39
Vasil вне форума Посмотреть профиль Отправить личное сообщение для Vasil Найти все сообщения от Vasil
  № 3  
Ответить с цитированием
Vasil

Регистрация: Apr 2012
Сообщений: 8
Мда) Видимо мои познания еще малы, что бы разобраться с Вашим решением, Wolsh.
Я пока пишу скрипты в кадре, а работу с файлами и классами (если правильно понял Ваш ответ) еще не изучал.
Все же посидев вечерок избавился от первых двух проблем таким способом
Код AS3:
var m_roll_fon:M_roll_fon= new M_roll_fon();   
addChild(m_roll_fon);
var m_roll:M_roll= new M_roll();   
addChild(m_roll);
var temp_roll:int=0;
 
         m_roll_fon.addEventListener(MouseEvent.MOUSE_MOVE, RotationCircle);
		 m_roll.addEventListener(MouseEvent.MOUSE_MOVE, RotationCircle);
		 function RotationCircle(e:MouseEvent):void
      { if(temp_roll==1)
	  {
         var    X:Number = m_roll.x;
         var    Y:Number = m_roll.y;
         var   mX:Number = mouseX;
         var   mY:Number = mouseY;
         var   AB:Number;
         var   OB:Number;
         var sina:Number;
         var    a:Number;
 
            AB = Math.abs(X - mX);
            OB = Math.abs(Math.sqrt(Math.pow(X - mX ,2) + Math.pow(Y - mY ,2)));
          sina = AB / OB;
             a = Math.asin(sina) * 180 / Math.PI;
 
            if (Y >= mY && X <= mX)
            {
               m_roll.rotation = a;
            } else
            if (Y < mY && X <= mX)
            {
               m_roll.rotation = 180 - a;
            } else
            if (Y >= mY && X > mX)
            {
               m_roll.rotation = 360 - a;
            } else
            if (Y < mY && X > mX)
            {
               m_roll.rotation = 180 + a;
            }
	  }
      }
      m_roll.addEventListener(MouseEvent.MOUSE_DOWN,RotationCircleDown);
	   function RotationCircleDown(e:MouseEvent):void
	   {temp_roll=1;
		   m_roll.addEventListener(MouseEvent.MOUSE_MOVE, RotationCircle);
	   m_roll_fon.addEventListener(MouseEvent.MOUSE_MOVE, RotationCircle);}
	   m_roll_fon.addEventListener(MouseEvent.MOUSE_UP,RotationCircleUp);
	   m_roll.addEventListener(MouseEvent.MOUSE_UP,RotationCircleUp);
	   function RotationCircleUp(e:MouseEvent):void
	   {temp_roll=1;
		   m_roll.removeEventListener(MouseEvent.MOUSE_MOVE, RotationCircle);
	   m_roll_fon.removeEventListener(MouseEvent.MOUSE_MOVE, RotationCircle);}
где m_roll_fon область всей сцены.
Может как-нибудь можно избавиться от третей проблемки в моем случае? или всеже придется изучить создание файлов и классов?