2011-07-06 83 views
0

我发现这个动作在线以围绕其中心点旋转Sprite,但是当我使用它时会出现两个错误。 1084:语法错误:在leftparen之前期待标识符。 1084:语法错误:在leftbrace之前期待rightparen。 另外,代替angleDegrees是否我放入角度我想让精灵旋转?Actionscript 3.0 Sprite围绕中心旋转Error

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

为了摆脱语法错误的,改变这一行:

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