2011-07-11 17 views
0

アンカーポイントとして中心を使用してサイズ変更エフェクトを使用してパネルのサイズを変更しようとしています。私はいくつかの情報のためにグーグルしていると私が見つけた唯一のものは、horizo​​ntalCenterとverticalCenterを0に設定することですが、これは私のために働いていません。パネルは左上隅からサイズを変更し続けます。中心をアンカーポイントとして使用してパネルのサイズを変更します

これを達成する方法を誰かがより明確に説明できますか。

ありがとうございます。

+0

あなたは現在、これをやっているかのコードを投稿することができますか?親コンテナを含む。ありがとう。 –

+0

出典はhttp://pastebin.com/3KQLBGUA – user777231

答えて

1

Jonathanが示唆しているように、Panelの親コンテナはBasicLayoutではなく、LiquidLayout(VerticalLayoutなど)を使用している可能性があります。液体レイアウトを使用するときは、 'x'、 'y'、 'horizo​​ntalCenter'、 'verticalCenter'、 'left'、 'right'、 'top'、 'bottom'など絶対位置属性は使用できません。それらは単に無視されますが、オブジェクトはお互いに配置されなければならないので意味があります。

とにかく、これは完璧に動作します:

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

    <s:states> 
     <s:State name="small" /> 
     <s:State name="big" /> 
    </s:states> 

    <s:transitions> 
     <s:Transition> 
      <s:Resize target="{panel}" /> 
     </s:Transition> 
    </s:transitions> 

    <s:Panel id="panel" horizontalCenter="0" verticalCenter="0" 
      width.small="200" height.small="100" 
      width.big="400" height.big="200"> 

     <s:Button label="toggle size" 
        click="currentState = currentState == 'small' ? 'big' : 'small'" /> 
    </s:Panel> 

</s:Application> 
+0

です。ありがとうございました。それはまだ私のために働いていないようです。確かに私は何かが欠けている。私はs:GroupをBasicLayout、verticalCenterとhorizo​​ntalCenter = "0"のパネルを持っていますが動作しません。あなたはそれを見てみることができれば、私は本当にそれを謝るだろう。ご覧のとおり、選択したタブに基づいてパネルのサイズを変更しています。これが最良の方法かどうかは分かりません。ここではコードhttp://pastebin.com/3KQLBGUA – user777231

+0

私はちょうどあなたのコードをそのままコピー&ペーストし、それが期待どおりに動作するので、問題はこのコンポーネントの親に関係しているはずです。おそらくmxコンポーネントにネストされていますか? – RIAstar

+0

私はあなたが掲示したコードを試しました、そして、それは期待通りに働きました、中央にアンカーポイント。 –

関連する問題