2010-06-14 72 views
1

我一直試圖讓這個工作,我似乎無法弄清楚。有一個Image控件,當我點擊它時,我需要放大(使用點擊鼠標的中心/轉換點)。Flex 4:縮放到一個點(放大鼠標被點擊的圖像)

我有縮放過渡效果很好,但是當我設置transformX & tranformY(與autoCenterTransform爲false)它沒有放大到該點。

這裏是我的代碼,只有在放大(而不是一個特定點)

<fx:Script> 
     <![CDATA[ 

      protected function imgLogo_clickHandler(event:MouseEvent):void 
      { 
       transformer.play(); 
      }   
     ]]> 
    </fx:Script> 

    <fx:Declarations>  
     <s:Parallel id="transformer" target="{imgLogo}"> 
      <s:Scale scaleXBy="0.5" scaleYBy="0.5" />   
     </s:Parallel> 
    </fx:Declarations> 

    <mx:Image id="imgLogo" width="250" x="100" y="100" 
      maintainAspectRatio="true" source="@Embed('src/logo.png')"  
      click="imgLogo_clickHandler(event)" /> 

任何幫助是極大的讚賞。 謝謝

回答

2

經過一番進一步挖掘,我能夠弄清楚這一點。您需要將transformXtransformY設置爲MouseEvent的舞臺座標(不是本地的)。

protected function imgLogo_clickHandler(event:MouseEvent):void 
{ 
    scaleImg.transformX = event.stageX; 
    scaleImg.transformY = event.stageY; 
    transformer.play(); 
} 

並修改申報爲Scale像這樣

<s:Scale id="scaleImg" scaleXBy="0.5" scaleYBy="0.5" autoCenterTransform="false" />