他们两个都这样做。那么,它们是否完全相同或存在差异?
答案 0 :(得分:2)
从概念上讲它们是相同的,但要注意一些差异。
显示对象可以是2d(transform.matrix
)或3d(transform.matrix3D
),但不能同时是两者。 rotation
属性反映了matrix
或matrix3D
的轮播,而rotationZ
明确表示围绕matrix3D
属性的Z轴的旋转。这里的区别在于,如果您设置rotationZ
它将像所有3d属性(z
,rotationX
等)一样,将显示对象转换为3d(transform.matrix3D
)甚至如果没有设置其他3d属性。例如:
var sprite:Sprite = new Sprite();
sprite.rotation = 50;
trace(sprite.transform.matrix); // [object Matrix]
trace(sprite.transform.matrix3D) // null
sprite.rotationZ = 50;
trace(sprite.transform.matrix); // null
trace(sprite.transform.matrix3D) // [object Matrix3D]
这是值得注意的,因为3d渲染(transform.matrix3D
)确实引入了一些模糊,因为3d被投射到2d的方式,而2d渲染(transform.matrix
)则没有。
因此,如果您不打算使用任何其他3D属性,请坚持rotation
。如果您要使用其他3d属性,则使用rotationZ
更有意义。
除此之外,它们是相同的。 ;)
希望有所帮助。