2010-07-08 79 views
1

我有一个类名为Box扩展Sprite,当我试图访问他transform.matrix3D财产(实际上是从Transform对象matrix3D属性)这将返回我null。为什么?AS3 - 为什么我的transform.matrix3D为空?

package some.place 
{ 
    // ... imports ... 

    public class Box extends Sprite 
    { 
     public function Box() {} 

     public function DoSomething():void 
     { 
      var m:Matrix3D = transform.matrix3D; 
      // here m == null !!! Why??? 
     } 
    } 
} 

回答

2

默认情况下,2D对象没有matrix3D,即如果你还没有跟你DisplayObject你将有一个空矩阵使用任何3D的东西(z属性,的rotationY,等...)。

N.B.您还可以设置将matrix3D为null,以重置您反对在2D

The value of the z property of a 2D object is zero and the value of its matrix3D property is null.

+0

作为一个快速的注意,最简单的方法,以确保你有一个非空matrix3D属性(不以其他方式影响DisplayObject的视图)只是设置'displayObjectInstance.z = 1;'。 – 2010-07-08 23:39:52