2011-12-20 72 views
4

我正在使用閃光燈(AS3),並具有一個動態影片剪輯,我想使用滑塊向上或向下縮放。我使用scaleX和scaleY函數可以很好地工作。從閃光燈中心縮放

唯一的麻煩是從文檔的左手邊這些規模,我想它從任何幫助表示讚賞中心

進行縮放。

回答

3
function scaleFromCenter(dis:*, sX:Number, sY:Number):void 
{ 
    var prevW:Number = dis.width; 
    var prevH:Number = dis.height; 
    dis.scaleX = sX; 
    dis.scaleY = sY; 
    dis.x += (prevW - dis.width)/2; 
    dis.y += (prevH - dis.height)/2; 
} 

scaleFromCenter(yourMovieClip, 0.3, 0.3); 

..

或者看看Greensocks TweenMax/AutoFitArea

http://www.greensock.com/autofitarea/

非常強大和易於使用。

+0

這工作完美,非常感謝。 – Matt 2011-12-20 13:54:50

1

簡單地創建一個對象,使用中心處的0,0註冊十字線來縮放。

+1

如果我理解正確,他的動畫片段是動態創建的。因此,註冊點在左上角爲0,0。 – pioSko 2011-12-20 12:21:08

2

爲了從對象的中心縮放/旋轉你需要做以下

  1. 翻譯對象爲0,0。
  2. 比例/旋轉
  3. 將其翻譯回原來的x,y。

這是一段代碼。

private function scaleInPosition(dis:Sprite,sX:Number,sY:Number):void 
{ 
    var posX:Number = dis.x; 
    var posY:Number = dis.y; 
    dis.x =dis.y = 0; 
    dis.scaleX = sX; 
    dis.scaleY = sY; 
    dis.x = posX; 
    dis.y = posY; 
} 
+0

這是圍繞左上角原始座標的縮放比例。 – pioSko 2011-12-20 13:35:55