在Flex中定义移动设备应用程序和启动屏幕
创建移动设备应用程序容器
-
<s:ViewNavigatorApplication> 标签用于定义只有一个部分的移动设备应用程序。
-
<s:TabbedViewNavigatorApplication> 标签用于定义有多个部分的移动设备应用程序。
开发用于平板电脑的应用程序时,屏幕大小限制并不像在手机应用程序中那样重要。因此,对于平板电脑,不需要以小视图来构建应用程序。可以使用标准 Spark Application 容器以及受支持的移动设备组件和外观来构建应用程序。
移动设备应用程序容器具有以下默认的特性:
特性 |
Spark ViewNavigatorApplication 和 TabbedViewNavigatorApplication 容器 |
---|---|
默认大小 |
100% 高,100% 宽,占整个可用屏幕空间。 |
子代布局 |
由组成应用程序视图的各 View 容器定义。 |
默认内边距 |
0 像素。 |
滚动条 |
无。如果在应用程序容器的外观中添加滚动栏,用户可以滚动整个应用程序。包括应用程序的 ActionBar 和选项卡栏区域。您通常并不希望滚动视图的这些区域。因此,将滚动条添加到应用程序的各 View 容器中,而不是添加到应用程序容器的外观中。 |
移动设备应用程序容器与 Spark Application 容器的区别
Spark 移动设备应用程序容器的大部分功能与 Spark Application 容器相同。例如,可以对移动设备应用程序容器应用样式,其方法与 Spark Application 容器的样式应用方法相同。
Spark 移动设备应用程序容器有一些与 Spark Application 容器不同的特征:
-
支持持久化
支持在磁盘中存储和加载数据。通过持久化机制,用户可以中断移动设备应用程序的运行,例如接听电话,然后在通话结束时恢复应用程序的状态。
-
支持视图导航
ViewNavigatorApplication 容器自动创建一个 ViewNavigator 容器,以控制视图之间的导航。
TabbedViewNavigatorApplication 容器自动创建一个 TabbedViewNavigator 容器,以控制部分之间的导航。
-
支持设备的后退和菜单按钮
当用户按下后退按钮时,应用程序将导航回到堆栈中的上一个视图。当用户按下菜单按钮时,将显示当前视图的 ViewMenu 容器(如果已经定义)。
有关 Spark 应用程序容器的更多信息,请参阅 About the Application container。
处理应用程序级别的事件
NativeApplication 类代表一个 AIR 应用程序。它负责提供应用程序信息和应用程序级功能,并分派应用程序级事件。可以使用静态属性 NativeApplication.nativeApplication 来访问与移动设备应用程序对应的 NativeApplication 类的实例。
例如,NativeApplication 类定义了可以在移动设备应用程序中处理的 invoke 和 exiting 事件。下面的示例引用该 NativeApplication 类,来定义 exiting 事件的事件处理函数:
<?xml version="1.0" encoding="utf-8"?> <!-- containers\mobile\SparkNativeApplicationEvent.mxml --> <s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" firstView="views.EmployeeMainView" creationComplete="creationCompleteHandler(event);"> <fx:Script> <![CDATA[ import mx.events.FlexEvent; protected function creationCompleteHandler(event:FlexEvent):void { // Reference NativeApplication to assign the event handler. NativeApplication.nativeApplication.addEventListener(Event.EXITING, myExiting); } protected function myExiting(event:Event):void { // Handle exiting event. } ]]> </fx:Script> </s:ViewNavigatorApplication>
请注意,需使用 ViewNavigatorApplication.navigator 属性来访问 ViewNavigator。
从应用程序描述符文件获取详细信息
我们可以xxx-app.xml应用程序描述符文件中,自定义信息,达到设置全局变量的目的,并在运行获取他:
var xmlObj:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns:Namespace = xmlObj.namespace();
var address:String = xmlObj.ns::serverAddress;
var address:String = xmlObj..serverAddress;
var currentVersion:String = xmlObj.ns::versionNumber;
在应用程序中添加启动屏幕
Spark Application 容器是 ViewNavigatorApplication 和 TabbedViewNavigatorApplication 容器的基类。用于 Spark 主题时,Spark Application 容器支持应用程序预加载器,以显示应用程序 SWF 文件的下载和初始化进度。
用于 Mobile 主题时,则可以显示启动屏幕。启动屏幕在应用程序启动期间显示。