我在网上发现这个动作脚本围绕它的中心点旋转一个精灵,但是当我使用它时我遇到了两个错误。 1084:语法错误:在leftparen之前需要标识符。 1084:语法错误:在leftbrace之前期待rightparen。 另外,取代 angleDegrees ,我是否想要将精灵旋转到的角度?
var point:Point=new Point(spr_box.x+spr_box.width/2, spr_box.y+spr_box.height/2);
rotateAroundCenter(spr_box,45);
function rotateAroundCenter (ob:*, angleDegrees) {
var m:Matrix=ob.transform.matrix;
m.tx -= point.x;
m.ty -= point.y;
m.rotate (angleDegrees*(Math.PI/180));
m.tx += point.x;
m.ty += point.y;
ob.transform.matrix=m;
}
答案 0 :(得分:0)
要摆脱语法错误,请更改此行:
m.rotate (angleDegrees*(Math.PI/180));
到此:
m.rotate = (angleDegrees*(Math.PI/180));
从它的外观来看,你应该使用angleDegrees作为Sprite所需的位移角度。
为了改进该功能并使其更容易重用,您可以在函数内移动point
的声明。
这样的事情:
function rotateAroundCenter(ob:DisplayObject, angleDegrees:Number) : void {
var point:Point=new Point(ob.x + ob.width / 2, ob.y + ob.height / 2);
var m:Matrix = ob.transform.matrix;
m.tx -= point.x;
m.ty -= point.y;
m.rotate = (angleDegrees*(Math.PI/180));
m.tx += point.x;
m.ty += point.y;
ob.transform.matrix = m;
}