2009-06-26 1 views
3

mxmlを使用してflexでレイアウトを作成しようとすると、レイアウトにはCanvasコンポーネントとBoxが含まれます。レイアウトは常に、アプリケーションの下端にボックスがあり、高さが固定されている必要がありますが、キャンバスは残りのステージ領域を塗りつぶし、ボックスと重ならないようにする必要があります。sizeステージで使用可能なスペースを埋めるためのflexコンポーネントの高さ

私のMXMLは次のとおりです。

<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" 
width="100%" height="100%" layout="absolute" clipContent="false" verticalGap="0"> 
    <mx:Canvas width="100%" height="100%" /> 

    <mx:Box width="100%" height="30"></Box> 
</mx:Module> 

Iキャンバス(高さ=「{this.stage.height - 30}」)に高さを設定するために動的バインディングを使用して試みたが、それは間違った結果をもたらします。

Actionscriptを使用して高さを設定せずに私が達成した簡単な方法はありますか?

+0

ありがとうございます、残念ながらいずれのアイデアは機能しませんでした。上記の例を使用しているように、私のモジュールとオーバーライドするキャンバスとボックスタイプのレイアウトと関係があると思います。正常に動作するサンプルアプリケーションを作成できました – sixones

答えて

1

私は多くのモジュールを使用していないが、これは動作します:

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    layout="absolute" 
    width="100%" 
    height="100%" 
    > 
     <mx:Canvas left="0" right="0" top="0" bottom="0" /> 
    <mx:HBox 
     width="100%" 
     height="50" 
     bottom="0" 
     > 
      .... 
    </mx:HBox> 
</mx:Application> 

役立ちます希望を! VBoxのように多かれ少なかれ動作しますlayout="vertical"Moduleを設定することにより

2
<Module layout="vertical" xmlns="..."> 
    <Canvas width="100%" height="100%"> 
    <HBox width="100%" height="30"/> 
</Module> 

Canvasは縦横100%を満たすように設定されていますが、明示的な高さがあるため、HBoxのスペースは残ります。

0

私は使用できました。

<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" 
width="100%" height="100%" layout="absolute" clipContent="false" verticalGap="0"> 
    <mx:Canvas bottom="30" left="0" right="0" top="0" /> 

    <mx:Box width="100%" height="30"></Box> 
</mx:Module> 

キャンバスがボックスまで使用できるスペースを埋めるので、これで問題が解決しました。キャンバスでボトムプロパティを0に設定すると、それがBoxを越えて展開され、ステージ全体が塗りつぶされます。

関連する問題