При создании макета в приложении Flex вы можете добиться согласованного разрешения экрана независимого внешнего вида благодаря использованию относительного масштабирования .
Это очень похоже на создание жидкостного макета с HTML.
Например, чтобы создать простое приложение с двумя столбцами - левая навигация и контент - вам нужно всего два контейнера, один предопределенный и один левый для неограниченного масштабирования.
следующим образом:
<mx:HBox width="225">
<mx:Button label="Menu 1"/>
<mx:Button label="Menu 2"/>
<mx:Button label="Menu 3"/>
</mx:HBox>
<mx:HBox width="100%">
Any content here will flow fluidly across the entire screen regardless of window size/screen resolution.
</mx:HBox>
Используя описанные выше основы, вы можете создать макет приложения, который формируется на любом экране.
Однако , иногда вам нужно создать более сложную схему расположения с множеством взаимозаменяемых компонентов, динамически изменяющих размеры, чтобы соответствовать окну.
Для этого вы можете сделать Абсолютное позиционирование .
переопределите компоненты updateDisplayList () и создайте свои собственные правила определения размера / расположения.
Это, конечно, требует, чтобы вы находились в контейнере Canvas или для основного контейнера приложения было установлено значение absolute .
Простой пример:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number) : void
{
//find out how big we are
var stageWidth:int = this.width;
//center the box in the middle of the page.
centeredBox.x = stageWidth - (centeredBox/2);
}
</mx:Script>
<mx:HBox id="centeredBox" width="500"/>
</mx:Application>
Переопределяя updateDisplayList (), вы можете создавать бесконечные способы для лучшего динамического позиционирования и размера ваших компонентов, чтобы лучше использовать экранное восстановление.