Flash 动作脚本翻译转换

Flash 动作脚本翻译转换,flash,actionscript,matrix,transformation,Flash,Actionscript,Matrix,Transformation,嗨,我正在做动作脚本3,我必须使用平移旋转缩放到电影剪辑。我的旋转和缩放工作正常,但当我处理平移时,我发现问题是平移会将对象移动到原点之外,因此当我想要旋转对象时,对象不再按预期旋转。实现翻译的最佳方式是什么,以便在翻译源代码的同时翻译电影剪辑 最后一件事。。movieclip.scale和movieclip.transform.scale函数之间有什么区别?如果我使用movieclip.scale,我是否仍然能够从该movieclip.scale获取movieclip.transform.ma

嗨,我正在做动作脚本3,我必须使用平移旋转缩放到电影剪辑。我的旋转和缩放工作正常,但当我处理平移时,我发现问题是平移会将对象移动到原点之外,因此当我想要旋转对象时,对象不再按预期旋转。实现翻译的最佳方式是什么,以便在翻译源代码的同时翻译电影剪辑


最后一件事。。movieclip.scale和movieclip.transform.scale函数之间有什么区别?如果我使用movieclip.scale,我是否仍然能够从该movieclip.scale获取movieclip.transform.matrix

所有矩阵变换(包括旋转和缩放)相对于剪辑所在坐标系的原点生效。如果要围绕任何其他点旋转或缩放,则应将片段平移到该点,然后进行变换并向后平移。换言之,这:

clip.rotation = 30;
做与此相同的事情:

var tx:Number = clip.x;
var ty:Number = clip.y;
var m:Matrix = clip.transform.matrix;
m.translate( -tx, -ty );
m.rotate(30*Math.PI/180);
m.translate( tx, ty );
clip.transform.matrix = m;
它的工作方式与缩放变换完全相同

对于您的另一个问题,MovieClip.scaleX/Y和Matrix.scale之间的区别与rotate完全相同-您可以以任何方式应用旋转,但使用内置的MC属性,它们相对于剪辑的注册点生效,矩阵函数相对于原点。如果剪辑的注册点位于(0,0),则它们的工作方式相同