sltt
18.04.2010, 22:19
Есть необходимость в спрайте нарисовать рисунок и вращать его вокруг центра.
Применяя смещение матрицы, точка вращения переходит в центр рисунка.
Но. Cмещение спрайта становятся довольно странными.
Вопрос,
1. как можно нарисовать рисунок с точкой вращения в центре
2. чтоб размеры и положения спрайта и рисунка в нем совпадали
//Половина размера рисунка
const imgR = 50;
//Матрица сдвига, для перенесения RegistrationPoint в центр рисунка
var matr:Matrix = new Matrix();
matr.identity();
matr.translate(-imgR, -imgR);
//Инит спрайта
var c2:Sprite = new Sprite();
addChild(c2);
c2.x = 200;
c2.y = 200;
//Рисунок
c2.graphics.beginBitmapFill(new myIMG(0, 0), matr, false, true);
c2.graphics.drawRect(-imgR, -imgR, imgR*2, imgR*2);
c2.graphics.endFill();
//Заливка спрайта
c2.graphics.beginFill(0x55ff55, 0.35);
c2.graphics.drawRect(0,0,c2.width,c2.height);
c2.graphics.endFill();
//Поворот
c2.rotation += 23;
Применяя смещение матрицы, точка вращения переходит в центр рисунка.
Но. Cмещение спрайта становятся довольно странными.
Вопрос,
1. как можно нарисовать рисунок с точкой вращения в центре
2. чтоб размеры и положения спрайта и рисунка в нем совпадали
//Половина размера рисунка
const imgR = 50;
//Матрица сдвига, для перенесения RegistrationPoint в центр рисунка
var matr:Matrix = new Matrix();
matr.identity();
matr.translate(-imgR, -imgR);
//Инит спрайта
var c2:Sprite = new Sprite();
addChild(c2);
c2.x = 200;
c2.y = 200;
//Рисунок
c2.graphics.beginBitmapFill(new myIMG(0, 0), matr, false, true);
c2.graphics.drawRect(-imgR, -imgR, imgR*2, imgR*2);
c2.graphics.endFill();
//Заливка спрайта
c2.graphics.beginFill(0x55ff55, 0.35);
c2.graphics.drawRect(0,0,c2.width,c2.height);
c2.graphics.endFill();
//Поворот
c2.rotation += 23;