У меня нет опыта в создании моего первого мобильного приложения Flex (хотя я не новичок во Flex), и я споткнулся о первое препятствие.
Я не могу получить ViewNavigatorApplication для отображения представления при попытке использовать firstView с состояниями, например. firstView.phone , firstView.tablet .
Я просто оставил пустую панель действий и область содержимого.
Если я попытаюсь установить настройку firstView без состояния (например, firstView = "view.HomeView" ), представление загружается нормально.
Вот код:
<s:ViewNavigatorApplication
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
firstView.phone="views.HomeView"
firstView.tablet="views.TabletHomeView"
applicationDPI="160"
creationComplete="initApplication()">
<s:states>
<s:State name="portraitPhone" stateGroups="portrait, phone"/>
<s:State name="landscapePhone" stateGroups="landscape, phone"/>
<s:State name="portraitTablet" stateGroups="portrait, tablet"/>
<s:State name="landscapeTablet" stateGroups="landscape, tablet"/>
</s:states>
<fx:Style source="assets/css/application.css"/>
<fx:Script>
<![CDATA[
import mx.events.ResizeEvent;
private var isPortrait:Boolean;
private var isTablet:Boolean;
private function initApplication():void
{
addEventListener(ResizeEvent.RESIZE, resizeHandler);
addEventListener(Event.ADDED_TO_STAGE, resizeHandler);
}
private function resizeHandler(event:*):void
{
isPortrait = (stage.height > stage.width);
isTablet = (stage.height > 950 || stage.width > 950);
currentState = (isPortrait ? "portrait" : "landscape") + (isTablet ? "Tablet" : "Phone");
}
]]>
</fx:Script>
</s:ViewNavigatorApplication>
Я погуглил это до смерти, прочитал хотя ViewNavigatorApplication спецификацию и не нашел никого другого с этой проблемой или какими-либо доказательствами, что я просто делаю это неправильно (хотя все еще подозреваю, что это так).
Заранее спасибо!