Actionscript 3.0 Sprite旋转中心错误

时间:2011-07-06 17:26:01

标签: actionscript-3 sprite image-rotation

我在网上发现这个动作脚本围绕它的中心点旋转一个精灵,但是当我使用它时我遇到了两个错误。 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;
}

1 个答案:

答案 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;
}