在多人协同开发中我们会用到类似SVN这样的版本控制软件,那么在一个人A提交代码后,另一个人B更新代码时有时会发生代码冲突,即A与B同时对同一个文件的同一段代码进行了修改。在调试线上游戏(webgame)时,由于每个人的账号ID都不同,所以会经常在设置账号ID的代码上发生代码冲突(conflict)。以下是A在代码中设置了他调试时所使用的账号ID:
public var currentID:int = 10;
然后B在他调试时会将账号ID设置成他想用的那个:
public var currentID:int = 20;
此时,代码冲突就发生了。且每次更新你都必须不厌其烦地解决这个代码冲突。
在我们的项目中,使用了编译器参数来解决这个问题。在Flash Builder中打开:项目属性->ActionScript编译器,然后在ActionScript编译器参数输入框中键入
-define=CONFIG::CURRENT_ID,10
这段代码的意思是定义了一个编译器全局变量,该变量可以在你的项目中任何as、mxml文件中使用,且编译时不会报错,在编译器编译文件的时候会把该变量替换成它所对应的值,在本例中,变量的名是CURRENT_ID,它的值是10。
之后,你便可以在项目中任何地方使用该变量,但是别忘了在前面加上命名空间CONFIG::。
public var currentID:int = CONFIG::CURRENT_ID;
使用了这样的代码之后,每次修改调试用的账号ID时,只需要打开项目属性窗口,修改编译器参数即可,不再会发生频繁的代码冲突了