0

我在网上找到了这个动作脚本来围绕它的中心点旋转一个精灵,但是当我使用它时我得到了两个错误。1084:语法错误:在左括号之前需要标识符。1084:语法错误:在左大括号之前需要右括号。 另外,代替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;
}
4

1 回答 1

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;
}
于 2011-07-06T18:53:50.010 回答