2011-03-04 52 views
3

我正在使用Adobe AIR應用程序。 「應用程序」窗口上的大小爲800X600,包含邊框容器,邊框容器包含許多控件。我想要的是如果用戶重新調整應用程序的大小,那麼該容器也應根據規模重新調整大小。即如果用戶最大化或最小化窗口,那麼邊界容器也應該分別被最大化或最小化。請儘快幫助我。提前致謝。在Adobe Flex/AIR應用程序調整應用程序窗口大小時調整容器的尺寸

回答

5

如果你不想(或不能出於某種原因)使用基於百分比寬度那麼你可以隨時活動一下在MXML如下:

<s:BorderContainer 
    xmlns:mx = "http://www.adobe.com/2006/mxml" 
    xmlns:s = "library://ns.adobe.com/flex/spark" 

    width = "{parentApplication.width/2}" 
    height = "{parentApplication.height/2}"> 

你只是得到一個參考組件的parentApplication並直接綁定到它的寬度和高度。拋出任何你想要的數學。

1

這可以使用MVC框架來完成。一些選項包括RobotLegs,Mate,Cairngorm,或者可以使用一些快速設計模式並實現定製版本。

本質上,應該檢測並應用Application事件Event.RESIZE並將其應用於容器。 stageHeight和stageWidth的屬性將給出必要的信息來調整容器的大小。

在任何情況下,調整事件大小都將遍歷顯示層次結構,但如果自定義事件或函數應用於控件,則在應用程序級別截取會很方便。

+1

您還可以通過讓容器層次結構中的所有顯示子項擴展處理resize事件的類來節省時間。事件傳播允許事件通過並攔截組件中的每個顯示對象。在所有容器的相關對象中利用事件傳播將是高效的。 – Pythovore 2011-03-04 14:11:30

2

更簡單的方法是讓組件聲明它們相對於它們外部容器的大小/位置。例如,不是設置x,y,寬度和高度,而是在應用程序組件中設置左側,右側,頂部和底部以及應用程序中的容器。如果您想要強制實現800x600的最小尺寸,則可以設置minWidth和minHeight屬性。希望有所幫助。

相關問題