2

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

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

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

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

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

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

有谁知道处理这种情况的任何好的建议/最佳实践?

谢谢

4

1 回答 1

1

我知道两种方法。

  • 使用条件编译。这里描述了这种方式。
  • 使用工厂模式。您可以在主类中调整工厂。为每个平台制作具有不同工厂设置的不同主类。
于 2012-10-23T20:31:39.150 回答