Advertisement
tolikpunkoff

Object rotation 1

Jun 21st, 2016
571
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. stop(); //останавливаем воспроизведение
  2. var MovieName="123.png"; //имя загружаемой картинки (должна лежать в том же каталоге, что и flash ролик)
  3. var LoadComplete=false; //флаг-индикатор показывает загрузилось или нет
  4. var lisVictim:Object = new Object();//создали слушатель для клипа
  5.  
  6. var x_obj=0; //Координаты объекта
  7. var y_obj=0;
  8. var x_t=0; //Координаты точки, вокруг которой будем вращать
  9. var y_t=0;
  10. var alph=0; //угол Alpha - см картинку
  11. var a_vect=0; //отрезок a - см картинку
  12. var ugol=0; //угол на который надо поворачивать фигуру
  13. var ugol_tp=0; //Угол используемый для вычисления поправки координат (A')
  14.  
  15. //преобразования градусов в радианы и обратно
  16. function gradToRad(grad:Number):Number
  17. {
  18.     rad=grad*Math.PI/180;
  19.     return rad;
  20. }
  21.  
  22. function radToGrad(rad:Number):Number
  23. {
  24.     grad=rad*180/Math.PI;
  25.     return grad;
  26. }
  27.  
  28. //обработчик слушателя*****************************
  29. lisVictim.onLoadInit = function(mc:MovieClip)
  30. {
  31.     //устанавливаем начальное состояние клипа:
  32.     imvVictim._x=(Stage.width-imvVictim._width)/2; //по центру
  33.     imvVictim._y=(Stage.height-imvVictim._height)/2;
  34.     //устанавливаем начальные значения переменных, используемых для вращения
  35.     x_obj=imvVictim._x; //запоминаем координаты объекта
  36.     y_obj=imvVictim._y;
  37.     x_t=x_obj+imvVictim._width/2; //... и координаты точки, вокруг которой будем вращать,
  38.     y_t=y_obj+imvVictim._height/2; // в данном случае - центра объекта
  39.     a_vect=Math.sqrt(Math.pow(x_t-x_obj,2)+Math.pow((y_t-y_obj),2)); //вычисляем длину отрезка a
  40.     alph=Math.asin((y_t-y_obj)/a_vect) //угол alpha в радианах
  41.    
  42.    
  43.     LoadComplete=true; //устанавливаем флаг завершения загрузки изображения
  44. }
  45. //конец обработчика*********************************
  46. //создаем объект-загрузчик
  47. var imageLoader:MovieClipLoader = new MovieClipLoader();
  48. imageLoader.addListener(lisVictim); //подключаем слушатель
  49. imageLoader.loadClip(MovieName, imvVictim);  //загружаем клип
  50. //*************************************************************
  51.  
  52. //*************************************************************trace
  53.  
  54. function vrash()
  55. {
  56.     ugol+=1; //значение угла будет увеличиваться при каждом вызове функции vrash()
  57.     ugol_tp=180+radToGrad(alph)+ugol; //вычисляем угол поправки A'
  58.     x_obj=a_vect*Math.cos(gradToRad(ugol_tp))+x_t; //... новые координаты объекта
  59.     y_obj=a_vect*Math.sin(gradToRad(ugol_tp))+y_t;
  60.    
  61.     //передаем объекту новые параметры
  62.     imvVictim._x=x_obj;
  63.     imvVictim._y=y_obj;
  64.     imvVictim._rotation=ugol;
  65. }
  66.  
  67.  
  68. onEnterFrame=function()
  69. {
  70.     if (LoadComplete) //проверка, произведена ли загрузка изображения и установка начальных параметров
  71.     {
  72.         vrash();
  73.     }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement