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



有没有人尝试过移植他们的移动 ActionScript/Flex 应用程序以在 PC/Mac 上运行? 问题在于 Flex 有一些仅限移动设备的类和其他不建议用于移动设备的类。

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

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

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

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

有没有人尝试将他们的移动 ActionScript/Flex 应用程序移植到 也可以在PC/Mac上运行?

是的,我用我的手机游戏做到了。 同样在移动Flextras组件的演示中。

在桌面版本中包含仅限移动设备的库可能会起作用 的应用程序,以便使用尽可能多的通用代码。

如果要在非移动项目中使用移动组件;这就是方法。 将仅移动 SWC 添加到库路径中。 您可能还需要将移动主题添加到库路径中。 但是,这可能很乏味,因为这样您将有两个主题,并且可能会引入共享组件的问题;例如需要指定完整主题的列表或滚动条。

将每个视图组件重构为容器部件可能会起作用 对于移动设备,用于桌面的容器部件和 包含所有控件,这些控件用于移动和 桌面。

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

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

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

在我的手机游戏中,我有一个用于游戏板的"无弹性"库。 然后我有一个用于视图内容的 Flex 库项目。 这个库"包装"游戏板。 然后,我在移动项目和将所有部分放在一起的Web项目中使用Flex库。

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

最新更新