简化从单个Flash项目发布用于android,iphone,swf和air的Flash CS6 AS3代码的过程的最佳方法是什么?

时间:2012-10-23 17:41:07

标签: actionscript-3 air flash publishing flash-cs6

我有一个使用Flash CS6开发的flash项目(AS3)。我正在为iOS设备,Android设备,桌面(空中)和网络浏览器(swf)开发。到目前为止,我已经能够使用单个代码库,例如在发布每个代码库时只进行一些修改 -

当用户按下使用flash.desktop.NativeApplication类的主页按钮时,我有一些代码可以处理在移动设备上退出应用程序的代码。显然,桌面或swf版本不需要这样,所以当我发布这些内容时,我会注释掉相关的import语句和代码,用于监听被按下的主页按钮。

我还有一个加载某些设置的config.xml文件,对于swf,这与swf文件不在同一目录中,因此在加载swf对象时传入此配置文件的位置(flashvars)。但对于所有其他版本,此文件的路径只是config.xml,因此我注释掉处理flashvars加载的代码 -

allFlashVars = LoaderInfo(this.root.loaderInfo).parameters;
webroot = String(allFlashVars["webroot"])

在需要类似步骤的版本之间还有一些其他差异,我已经在文档中注意为自己记住和其他开发人员。

但是我知道这不是理想的解决方案,并认为必须有更好的方法来管理它。

有没有人知道处理这种情况的任何好建议/最佳做法?

感谢

1 个答案:

答案 0 :(得分:1)

我知道两种方式。

  • 使用条件编译。这种方式描述为here
  • 使用工厂模式。您可以调整主类中的工厂。为每个平台创建具有不同工厂设置的不同主类。