Flex 4: масштаб до точки (увеличьте изображение, где была нажата мышь) - PullRequest
1 голос
/ 14 июня 2010

Я пытался заставить это работать, и я не могу понять это.Существует элемент управления 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 Ответ

2 голосов
/ 22 июня 2010

После дальнейших раскопок я смог понять это.Вам необходимо установить transformX и transformY в координаты сцены (НЕ локальные) из 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" />    
...