2010-06-14 3 views
1

Я пытался заставить эту работу работать, и я не могу понять ее. Существует элемент управления Image, который, когда я нажимаю на него, мне нужно увеличить (используя точку центра/преобразования, на которую нажимается мышь).Flex 4: масштабирование до точки (увеличение изображения, на которое была нажата мышь)

У меня есть переход трансфокатора рабочего большое, но когда я установил transformX & tranformYautoCenterTransform ложным) не увеличить в эту точку.

Вот мой код, который только увеличивает масштаб (не к конкретной точке)

<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

После некоторого дальнейшего копания, я смог понять это. Вам необходимо установить и 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" />  

 Смежные вопросы

  • Нет связанных вопросов^_^