Laan's steps..

Feed Rss

多平台开发

09.10.2009, flash, flex, by .

flex开发,有的时候可能有这样的需求:发布成air和online两个版本,甚至有的时候需要发布一个local版本,用来打包成独立运行程序。像DoSWF,就有三个版本:air,online,以及exe版本。这个时候就需要一些技巧了——当然了,如果你觉得你很有精力,那你大可针对每个版本做开发、维护。

应用到的就是flex sdk的条件编译(Conditional Compilation)。这里有一篇文章有讲述》》》

比如我想将程序发布成两个版本:AIR以及ONLINE。拿文件系统而言,二者就完全不一样,于是我先写一个接口:

public interface IFileSystem {
//打开一个文件
function openFile(handler:Function, filter:Array = null):void;
}

然后分别实现AIR以及ONLINE版本的IFileSystem。然后在代码里这样使用:

var fileSystem:IFileSystem;
CONFIG::AIR{
fileSystem = new AIRFileSystem();//在AIR环境下,新建AIRFileSystem
}
CONFIG::ONLINE{
fileSystem = new OnlineFileSystem();//在ONLINE环境下,新建OnlineFileSystem
}

在编译设置里,我设定了两个条件进行定义,并设置启用(true)、关闭(false)
-locale en_US -define CONFIG::AIR true -define CONFIG::ONLINE false

这里我开启了AIR条件编译,发布为AIR版本。当然如果要发布ONLINE版本的话,需要再建立一个项目,将资源引入,然后设置:
-locale en_US -define CONFIG::AIR false -define CONFIG::ONLINE true

稍微更改一些代码即可。然后你可以将更多的时间精力花在开发上去了。当然,写个脚本去执行发布会让你更方便。

主要应用时flex sdk的条件编译以及接口。接口实在是个好东西——

多平台开发 有1条回应

  1. 呵呵 又学习了

    回复

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>