Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- stop(); //останавливаем воспроизведение
- var MovieName="123.png"; //имя загружаемой картинки (должна лежать в том же каталоге, что и flash ролик)
- var LoadComplete=false; //флаг-индикатор показывает загрузилось или нет
- var lisVictim:Object = new Object();//создали слушатель для клипа
- var x_obj=0; //Координаты объекта
- var y_obj=0;
- var x_t=0; //Координаты точки, вокруг которой будем вращать
- var y_t=0;
- var alph=0; //угол Alpha - см картинку
- var a_vect=0; //отрезок a - см картинку
- var ugol=0; //угол на который надо поворачивать фигуру
- var ugol_tp=0; //Угол используемый для вычисления поправки координат (A')
- //преобразования градусов в радианы и обратно
- function gradToRad(grad:Number):Number
- {
- rad=grad*Math.PI/180;
- return rad;
- }
- function radToGrad(rad:Number):Number
- {
- grad=rad*180/Math.PI;
- return grad;
- }
- //обработчик слушателя*****************************
- lisVictim.onLoadInit = function(mc:MovieClip)
- {
- //устанавливаем начальное состояние клипа:
- imvVictim._x=(Stage.width-imvVictim._width)/2; //по центру
- imvVictim._y=(Stage.height-imvVictim._height)/2;
- //устанавливаем начальные значения переменных, используемых для вращения
- x_obj=imvVictim._x; //запоминаем координаты объекта
- y_obj=imvVictim._y;
- x_t=x_obj+imvVictim._width/2; //... и координаты точки, вокруг которой будем вращать,
- y_t=y_obj+imvVictim._height/2; // в данном случае - центра объекта
- a_vect=Math.sqrt(Math.pow(x_t-x_obj,2)+Math.pow((y_t-y_obj),2)); //вычисляем длину отрезка a
- alph=Math.asin((y_t-y_obj)/a_vect) //угол alpha в радианах
- LoadComplete=true; //устанавливаем флаг завершения загрузки изображения
- }
- //конец обработчика*********************************
- //создаем объект-загрузчик
- var imageLoader:MovieClipLoader = new MovieClipLoader();
- imageLoader.addListener(lisVictim); //подключаем слушатель
- imageLoader.loadClip(MovieName, imvVictim); //загружаем клип
- //*************************************************************
- //*************************************************************trace
- function vrash()
- {
- ugol+=1; //значение угла будет увеличиваться при каждом вызове функции vrash()
- ugol_tp=180+radToGrad(alph)+ugol; //вычисляем угол поправки A'
- x_obj=a_vect*Math.cos(gradToRad(ugol_tp))+x_t; //... новые координаты объекта
- y_obj=a_vect*Math.sin(gradToRad(ugol_tp))+y_t;
- //передаем объекту новые параметры
- imvVictim._x=x_obj;
- imvVictim._y=y_obj;
- imvVictim._rotation=ugol;
- }
- onEnterFrame=function()
- {
- if (LoadComplete) //проверка, произведена ли загрузка изображения и установка начальных параметров
- {
- vrash();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement