2012-03-19 10 views
0

クリック位置を中心にしてフレックスを作成しようとしています。 私のコードはSWF/IMAGEを中心にクリックした位置:FLEX

<fx:Declarations> 
    <s:Parallel id="transformer" target="{swe}"> 
     <s:Scale id="scaleby" scaleXBy="0.2" scaleYBy="0.2" autoCenterTransform="false"/>   
    </s:Parallel> 
</fx:Declarations> 




    <s:Group width="500" height="350" clipAndEnableScrolling="true"> 
       <s:SWFLoader source="CasuarinaBigMap.swf" width="500" height="350" id="swe" click="swe_clickHandler(event)"/> 

</s:Group> 


protected function swe_clickHandler(event:MouseEvent):void 
{ 
     scaleby.transformX = event.mouseX; 
     scaleby.transformY = event.mouseY; 
     transformer.play(); 
} 

私qustionは、私はボックスの中央にクリックしたポイントのパンを作ることができるどのよう あるのですか? Plsヘルプ。

ありがとうございました。

答えて

0

これはトリックを行うべき: 'localXプロパティ'

<fx:Declarations> 
    <s:Move id="moveEffect" /> 
</fx:Declarations> 

<s:Group id="mapContainer" width="300" height="300" clipAndEnableScrolling="true" 
     click="pan(event.localX, event.localY)"> 

    <s:Image id="map" source="@Embed('bigMap.png')" /> 
</s:Group> 

と 'とlocalY' mapContainerにマウスの 'x' と 'y' 位置の相対です。

そして今、パン()メソッド:

private function pan(mouseX:Number, mouseY:Number):void { 
    //calculate the offset from mapContainer's center 
    var diffX:Number = mapContainer.width/2 - mouseX; 
    var diffY:Number = mapContainer.height/2 - mouseY; 

    //move the map through the move effect 
    moveEffect.xFrom = map.x; 
    moveEffect.yFrom = map.y; 
    moveEffect.xTo = diffX; 
    moveEffect.yTo = diffY; 

    moveEffect.play([map]); 
} 
+0

はこの答えをdownvoted人は、彼がそれと間違っていると考えるものを明確にしてくださいもらえますか?また、[この回答](http://stackoverflow.com/questions/8256863/as3-knowing-how-many-arguments-a-function-takes/8257062#8257062)がおおよそ同時... – RIAstar

0

[スケール]エフェクトの代わりに[移動]エフェクトを使用してみてください。

関連する問題