Полностью подходящее приложение - Flex 4.5 - PullRequest
0 голосов
/ 27 июня 2011

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

  1. Что касается HTML, у меня фактически есть первая страница, которая определяет разрешение монитора пользователя, а затем перенаправляет в HTML-контейнер флэш-памяти (JSP), который считывает параметры ширины и высоты и переводит флэш-память в переданный размер
  2. В моем приложении я использовал 1280x720 в качестве эталонного размера, поэтому я создал служебный класс:

пакет утилит { import mx.collections.ArrayCollection; import mx.core.FlexGlobals; import mx.resources.ResourceManager; import mx.utils.ObjectProxy;

/**
 *
 * @author user
 *
 */
public final class LayoutUtils
{
    /**
     *
     *
     */
    public function LayoutUtils()
    {
        throw new Error("Boooohhhhhhhhhh");
    }

    public static function relativeToHeight(percentageValue:Number):Number
    {
        return percentageValue * FlexGlobals.topLevelApplication.height / 100; 
    }

    public static function relativeToWidth(percentageValue:Number):Number
    {
        return percentageValue * FlexGlobals.topLevelApplication.width / 100; 
    }
}

}

Я передаю процентное значение относительно высоты или ширины и получаю только это. Таким образом, я на самом деле связываю высоту / ширину компонентов, например, с {LayoutUtils.relativeToWidth(50)}, который вернул бы 640, если бы ширина моего приложения была 1280. Но это означает установку ширины и / или высоты почти для каждого компонента, и это также включает отступы и позиции привязки, которые делают это беспорядок.

У вас есть другие предложения? Я хочу, чтобы все было правильно изменено (включая шрифты). Все доступные размеры, которые я собираюсь сделать, будут иметь одинаковое соотношение сторон, например 16: 9, потому что я не вижу другого способа сделать это.

Есть предложения?

1 Ответ

1 голос
/ 27 июня 2011

Если вы хотите что-то масштабировать, используйте scaleX и scaleY в контейнере приложения (спрайт) и установите

stage.scaleMode = StageScaleMode.SHOW_ALL;
...