移植移动Flex / ActionScript应用程序以在桌面上运行

时间:2013-02-01 21:09:08

标签: flex mobile actionscript

有没有人试图将他们的移动ActionScript / Flex应用程序移植到PC / Mac上运行?问题是Flex有一些仅限移动的类和其他不推荐用于移动的类。

我还没有尝试过这样做,并且想知道其他人是否愿意与这个问题分享他们的经验。似乎有一些可能的方法可以做到这一点。

1)可能会在应用程序的桌面版本中包含仅限移动版本的库,以便尽可能多地使用公共代码。

2)将每个视图组件重构为移动设备的容器部件,桌面的容器部件以及包含所有控件的内部部件(可用于移动设备和桌面设备)可能会有效。

3)将Flex从应用程序中编写出来并使用纯ActionScript应用程序可能会起作用。这需要在ActionScript中为View,ViewNavigator和TabbedViewNavigator编写我自己的替换,并用fl.controls替换所有spark.components。 (出于性能原因,我已经从移动应用程序中删除了数据绑定和状态)。

1 个答案:

答案 0 :(得分:2)

  

是否有人尝试将其移动ActionScript / Flex应用程序移植到   也可以在PC / Mac上运行?

是的,我用我的手机游戏做到了。同样在mobile Flextras Components的演示中。

  

在桌面版中包含仅限移动的库可能会有用   应用程序,以尽可能多地使用公共代码。

如果您想在非移动项目中使用移动组件;这是方法。将仅限移动设备的SWC添加到库路径中。您可能还需要将移动主题添加到库路径中。然而,这可能是乏味的,因为那时你将有两个主题,它可能会引入共享组件的问题;例如List或滚动条,需要指定一个完整的主题。

  

将每个视图组件重构为容器部件可能会有效   用于移动设备,用于桌面的容器部件以及用于移动设备的内部部件   包含所有控件,用于移动和   桌面。

我手机游戏的主屏幕;我让视图内容扩展了一个组。然后我将它们包装在移动设备的“视图”中或浏览器的组中。

我不清楚你的第三个建议会解决什么问题。

我还建议将尽可能多的代码移到库项目中,以便在桌面,浏览器和移动项目之间共享它们。

在我的手机游戏中,我有一个用于游戏板的“无Flex”库。然后我有一个用于视图内容的Flex Library项目。这个图书馆'包装'游戏板。然后,我在移动项目和Web项目中使用Flex库,将所有部分组合在一起。

加载关卡数据的方式存在差异(在移动设备上使用文件类,在网络中使用URLLoader)。我在视图上设置属性以控制各个方面。例如,基于浏览器的游戏版本隐藏了屏幕控制,因为我假设人们将使用箭头键。