0


0

Flex3:内容のサイズに基づいてコンテナのサイズを変更するにはどうすればよいですか?

参考までに、私はFlex初心者です。

含まれるコンポーネントのサイズに基づいて自動的に縮小できるFlexアプリケーションを作成しようとしています。これにより、ユーザーはそれを最小ビューに縮小して、埋め込まれているHTMLページをさらに表示できます。

ExternalInterfaceを使用してアプリケーション全体のサイズを変更する方法は知っていますが、何かが表示または非表示になったときにサイズがどれだけ変化したかを自動的に判断するのに苦労しています。

例えば:

次のフレックスレイアウトがあるとします。


テキストフィールドの1つを非表示にして、VBoxを縮小するにはどうすればよいですか? 現在はvisible = falseに設定していますが、それは親VBoxには影響しないようです。

VBoxが縮小したら、アプリケーションがそれほど多くのスペースを必要としないことを検出し、必要なスペースがどれだけ少なくなるかを把握するにはどうすればよいですか?

ResizeEventを使用してみましたが、動作させることができませんでしたが、何か間違ったことをしている可能性があります。

ありがとうございます。

1 Answer


1


Flexは、CSSがHTML DOMで使用するのと同じ種類の「表示」スタイルを使用しません。 Flexで「可視性」と「表示」に相当するものは、それぞれ「可視」と「includeInLayout」です。

そのため、視界およびドキュメントフローから要素を削除する場合は、次のようにします。

.aStyle {
  visible: false;
  includeInLayout: false;
}

ActionScriptでこれを設定する場合、1行で記述できます。

  // myVBox is a VBox
  myVBox.visible = myVBox.includeInLayout = false;

さて、コンテナを「収まるように収縮させる」ことに関しては、これは本当に簡単です。 幅や高さを置かないでください。 上記のVBoxにはwidth = "100%"があります。つまり、常に親コンテナーと兄弟が提供するのと同じだけのスペースを占有します。