矩阵旋转后闪光灯崩溃

时间:2014-12-24 10:17:09

标签: actionscript-3 flash matrix

在我的Flash程序中,我有一个步骤,我想围绕其容器的中心旋转displayObject。 正如你们中的一些人可能知道的那样,Flash有一个默认的旋转中心点,即左上角,并不适合我的情况。 为了实现我的特定旋转,我使用矩阵进行3次连续变换,如下所示:

public function rotateAroundCenter(object:DisplayObject, container:DisplayObject, angleDegrees:Number):void {               
    var matrix:Matrix = object.transform.matrix;
    var rect:Rectangle = object.getBounds(container);

    matrix.translate(-(rect.left + (rect.width / 2)), -(rect.top + (rect.height / 2)));
    matrix.rotate((angleDegrees / 180) * Math.PI);
    matrix.translate(rect.left + (rect.width / 2), rect.top + (rect.height  / 2));
    object.transform.matrix = matrix; 
}

这段代码可以解决这个问题,我可以像我想的那样在他们的容器中心周围旋转displayObjects。

问题:对于其中一些对象(无法在工作人员和不工作人员之间找到歧视因素),每当我尝试应用 时180度旋转 使用前面的代码将它们颠倒过来,Flash卸载了SWF,这对我来说非常像一次崩溃。我只是为这些对象中的某些对象造成了这次崩溃,但是如果它们一旦崩溃就会崩溃我使用我的函数应用180度旋转。

我怀疑内存泄漏,但是,如果90或270度旋转工作,为什么这个特定情况会导致整个程序崩溃?

非常感谢有关此问题的任何线索。谢谢!

0 个答案:

没有答案