[英]Rotating a sprite around its center causes size changing
我創建了一個繼承自Sprite
的類,並添加了以下函數以從中心旋轉:
private function rotate(angle:Number):void
{
trace(width);
var tmpWidth:Number = width;
var rect:Rectangle = getBounds(parent);
var matrix:Matrix = transform.matrix;
matrix.translate(-(rect.left + rect.width/2), -(rect.top + rect.height/2) );
matrix.rotate((angle/180)*Math.PI);
matrix.translate((rect.left + rect.width/2), (rect.top + rect.height/2) );
transform.matrix = matrix;
trace(width);
}
我的問題是旋轉后對象的大小正在改變。 例如,轉換前的寬度值小於轉換后的寬度。 我究竟做錯了什么?
我沒有看到任何意外的行為。
由於您要應用旋轉,因此旋轉后的寬度和高度可能會有所不同。
例如,如果將90度旋轉應用於50x100的精靈,則現在將是100x50的精靈。
但是,如果要對完全方形的對象執行旋轉,並應用90度旋轉,則前后的寬度應相同。
請記住,寬度和高度是根據對象的邊界計算的。 通過旋轉對象,您可能會更改對象的邊界,從而更改寬度和高度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.