Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 矩阵旋转后的闪光崩溃_Actionscript 3_Flash_Matrix - Fatal编程技术网

Actionscript 3 矩阵旋转后的闪光崩溃

Actionscript 3 矩阵旋转后的闪光崩溃,actionscript-3,flash,matrix,Actionscript 3,Flash,Matrix,在我的Flash程序中,我有一个步骤,我想绕着它的容器中心旋转一个displayObject。 正如你们中的一些人可能知道的,Flash有一个默认的旋转中心点,即左上角,不适合我的情况。 为了实现特定旋转,我使用矩阵进行了3次连续变换,如下所示: public function rotateAroundCenter(object:DisplayObject, container:DisplayObject, angleDegrees:Number):void {

在我的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


问题:对于其中一些对象(无法找到工作对象和不工作对象之间的区别因素),每当我尝试使用前面的代码将它们倒置时,Flash会卸载SWF,这对我来说非常像崩溃。我只对这些对象中的一些对象进行了此崩溃,但如果它们在任何时候崩溃后崩溃,我将使用我的函数应用180度旋转

我怀疑内存泄漏,但是,如果90度或270度旋转有效,为什么这个特定的情况会使我的整个程序崩溃


任何关于这个问题的线索都将不胜感激。谢谢

Flash卸载SWF是什么意思?到底发生了什么?在Flash Builder调试控制台中,我收到一条消息,说SWF已卸载,我在浏览器中打开的应用程序此时停止:无法再与它交互。“我只收到其中一些对象的此崩溃…”,可以给我们提供有关您的对象的更多详细信息吗?您是否在浏览器上尝试了flash player的调试版本以获得触发的错误(如果有),我认为这是一个错误,这就是为什么您的swf没有响应的原因?我没有提供有关对象性质的详细信息,因为它们是自定义IIPImage查看器的实例,所以这非常具体。我使用这些查看器显示从服务器加载的JPEG2000图像。在本例中,我将这些查看器放在容器中,并按照问题中的说明旋转容器本身。我使用的是Flash调试版本,我可以补充一点,try/catch组合不会告诉我关于崩溃的任何信息,也不会阻止它…你能列出一些rect的值吗?是否存在以下对象:1)非常大,2)零宽度/高度,或3)源自负坐标空间?