Flex 4:缩放到一个点(放大到单击鼠标的图像)

时间:2010-06-14 19:07:56

标签: flex flex4 scale image-scaling

我一直试图让这个工作,我似乎无法弄明白。有一个Image控件当我点击它时我需要放大(使用单击鼠标的中心/变换点)。

我让变焦过渡效果很好,但是当我设置transformX& tranformYautoCenterTransform为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)"  />

非常感谢任何帮助。 感谢

1 个答案:

答案 0 :(得分: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" />