Какова наилучшая архитектура представления во flex?

Я начал изучать flex 4 и задумался о том, как изменить представления. Вот у меня вопрос, что люди обычно используют - состояния или представления (ViewStack). Тип веб-приложения, которое я делаю, может использовать оба, но что разработчики используют в больших проектах или, может быть, они используют не упомянутое ранее?

Также у меня есть вопрос о ViewStack. Если я напишу:

<mx:ViewStack id="views" resizeToContent="true" verticalCenter="0" horizontalCenter="0" >
    <s:NavigatorContent id="navOne">
        <s:Label text="asdas" x="0" y="0"/>
    </s:NavigatorContent>

то я не могу изменить местоположение своего ребенка. Этикетка остается в центре экрана. Если я уберу вертикальный и горизонтальный центр из ViewStack и поставлю их в теги Label, то метка будет в верхнем левом углу, а не в центре. Как я могу контролировать эти местоположения?


person randomUser56789    schedule 11.08.2011    source источник


Ответы (1)


Поскольку вы используете Flex 4, вы можете предпочесть состояния. И тому есть как минимум две причины:

  1. Состояния Flex 4 гораздо более декларативны, чем в Flex 3.
  2. Flex 4 не имеет Spark-реализации ViewStack, и он довольно устарел (необходимость использования NavigatorContent с контейнером Spark является еще одним доказательством этого факта).

Вторая часть вопроса. Проблема в том, что у вашего ViewStack нет никакого размера. Итак, наконец, у него есть размер содержимого (размер Label). Итак, verticalCenter и horizontalCenter - это просто выравнивание вашего ViewStack. Чтобы контролировать размер и выравнивание ViewStack, вам следует позаботиться о размерах. Что-то вроде:

<mx:ViewStack id="views" resizeToContent="true" verticalCenter="0" 
    horizontalCenter="0" width="500" height="300" >
    <s:NavigatorContent id="navOne" width="100%" height="100%">
        <s:Label text="asdas" x="0" y="0"/>
    </s:NavigatorContent>
person Constantiner    schedule 12.08.2011
comment
При использовании Flex 4 я использую только состояния, поскольку не вижу смысла использовать стеки просмотра, которые делают то же самое. Если бы вы захотели, я уверен, что вы могли бы создать искровой эквивалент Viewstack в нескольких десятках строк кода. - person J_A_X; 12.08.2011
comment
Спасибо за разъяснение. + спасибо за помощь со вторым вопросом, теперь все работает так, как я задумал. - person randomUser56789; 12.08.2011