Все ошибку сам нашел.Если кому интересно или понадобится
Код AS3:
package {
import flash.geom.*;
import flash.display.*;
import flash.events.MouseEvent;
import fl.motion.*;
public class MatrixExample extends Sprite {
public var objectConteiner:Sprite;
public var point_rotation:Point;
public var mc:MC;
public var tMatrix:Matrix
public function MatrixExample() {
objectConteiner = new Sprite();
addChild(objectConteiner);
mc = new MC();
objectConteiner.addChild(mc);
point_rotation = new Point(0,mc.height/2);
tMatrix = mc.transform.matrix;//надо было матрицу определить 1 раз, а не когда она была в повернутом состоянии
objectConteiner.addChild(doDrawCircle(point_rotation.x,point_rotation.y));
objectConteiner.x = 100;
objectConteiner.y = 100;
mc.addEventListener(MouseEvent.MOUSE_MOVE,MouseMove);
}
//рисует кружочек который все время находится стационарно
//просто для наглядности
private function doDrawCircle(x:Number,y:Number):DisplayObject {
var child:Shape = new Shape();
child.graphics.beginFill(0x999999);
child.graphics.lineStyle(1, 0x666666);
child.graphics.drawCircle(x, y, 2);
child.graphics.endFill();
addChild(child);
return child;
}
private function MouseMove(e:MouseEvent):void {
var mousex = e.target.mouseX;
var mousey = e.target.mouseY;
var katetA:int = mousey - (point_rotation.y);
var katetB:int = mousex - (point_rotation.x);
var ygol:int = Math.tan(katetA/katetB)*(180/Math.PI);
//tMatrix = mc.transform.matrix; здесь ее каждый раз переопределять не надо
MatrixTransformer.rotateAroundInternalPoint(tMatrix,point_rotation.x,point_rotation.y,ygol);
//лучше использовать вращение вокруг внутренней точки
e.target.transform.matrix = tMatrix;
}
}
}