1
我想制作一个类似于rotateAroundInternalPoint()
的功能。到目前为止,我的解决办法是这样的:围绕点的连续物体旋转
import flash.events.Event;
import flash.geom.Matrix;
import flash.geom.Point;
addEventListener(Event.ENTER_FRAME, onFrame);
function onFrame(e:Event):void
{
var m:Matrix = item.transform.matrix.clone();
var point:Point = new Point(50, 50); // The object's width and height are 100px, so 50 is the center
point = m.transformPoint(point);
m.translate(-point.x, -point.y);
m.rotate(5 * (Math.PI/180));
m.translate(point.x, point.y);
item.transform.matrix = m;
}
但是有这个代码的根本缺陷 - 它变得越来越少精确,每次迭代。
有人可以指出是什么原因造成的,以及解决方案是什么?
我仍然接受一个更好的答案,不依赖于参考矩阵,而是依赖于更好的数学。 –