2011-07-06 122 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; 
}