1

フレックスで別の小さな問題が発生しました...楕円を作成しましたが、それを動的に回転させたいと考えています。楕円のrotate=""値を変更するah:sliderを作成しました。そしてよく回ります。しかし、回転点は楕円の真ん中にあります。

一番下(y)と真ん中(x)に欲しい。

楕円にはいくつかの transformY および transformX 引数がありますが、効果はありませんか?

私の機能

private function rotateRadius():void {
if(wind.selected) {

selected.radiusDisp.rotation = radiusRotate.value;
}else {

}

}

誰かが私にヒントを与えることができれば素晴らしいだろう

4

2 に答える 2

1

これは、オブジェクトの回転方法を変更する最も簡単な方法です。

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
           xmlns:s="library://ns.adobe.com/flex/spark">

<s:controlBarContent>
    <s:HSlider id="rotationSlider" minimum="0" maximum="360" />
</s:controlBarContent>


<s:Ellipse rotation="{rotationSlider.value}" transformX="100" transformY="50" width="200" height="100" x="100" y="100">
    <s:fill>
        <s:SolidColor color="red" />
    </s:fill>
</s:Ellipse>


<s:Ellipse rotation="{rotationSlider.value}" transformX="100" transformY="100" width="200" height="100" x="400" y="100">
    <s:fill>
        <s:SolidColor color="red" />
    </s:fill>
</s:Ellipse>

楕円を表面上で揺らしたり転がしたりする場合は、登録ポイントの計算にビット三角法を追加する必要があります。

HTH、FTQuest

于 2011-06-18T21:11:04.183 に答える
0

これを行うにはいくつかの方法がありますが、おそらく最も簡単な方法は、楕円を別の表示オブジェクト内にネストすることです (回転させたい点が新しい表示オブジェクトの中心になるようにします)。楕円よりも「大きな」オブジェクトがあるため、これはフレックスレイアウトでは苦痛になる可能性があります。

もう 1 つのオプション (正しい方法) は、変換オブジェクトを使用することです。

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#transform

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/geom/Transform.html#matrix

于 2011-06-18T17:08:37.737 に答える