Flex: приложения с перекрестным разрешением - PullRequest
2 голосов
/ 06 августа 2009
What is the best way to create applications in Flex/AIR,
which look and feel the same irrespective of the screen
resolution?

Ответы [ 3 ]

3 голосов
/ 14 августа 2009

При создании макета в приложении 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 (), вы можете создавать бесконечные способы для лучшего динамического позиционирования и размера ваших компонентов, чтобы лучше использовать экранное восстановление.

0 голосов
/ 20 ноября 2009

Обычно мы создаем MainFrame.mxml, который действует как наш основной компонент и имеет относительное масштабирование макета, как упоминалось другими. Затем мы создаем приложение AIR, которое просто встраивает это одно MainFrame.mxml и другое приложение Flex, которое также встраивает его. Таким образом, мы можем сохранить все приложение в MainFrame и не беспокоиться о том, будет ли оно в Flex или Air. При этом вам необходимо убедиться, что вы не используете какие-либо специфичные для AIR или Flex вызовы, которые не переводятся на другие.

0 голосов
/ 11 августа 2009

Вы можете создать приложение с высотой и шириной, соответствующей контейнеру, чтобы все компоненты правильно совмещались при всех разрешениях экрана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...