多个开发人员的默认变量

时间:2010-02-04 01:58:20

标签: flash actionscript-3 collaboration

这可能是一个奇怪的问题,但我想知道是否有任何方法可以有效地(可能使用命名空间?)在actionscript项目中的每个开发人员的类中有不同的默认变量。我问,因为我们目前正在开发一系列Flash游戏:总共24个。每个都由shell容器加载。 shell接收要加载游戏的flash var。在我们的开发环境(Flash / FlashDevelop)中,没有flashvars,因此AS中的常量定义了当没有flashvar时要加载的游戏:

/** Game to load during debugging if the game param is not set via flashvars. */
public static const DEFAULT_GAME:String = "gameName";

因此,每个开发人员都会将其更改为他们正在处理的游戏。但是,当提交对存储库(svn)的更改时,开发人员必须更改此更改或撤消更改,并且当其他人更改时,每个开发人员都必须将其更改为他们的游戏。

想知道是否有办法在Flash IDE或用户特定文件中指定类似于Flashvars的默认参数,以便代码可以保持不受hacky调试变量的影响。我知道在Flex中你可以在html模板中设置flashvars,然后每个开发人员都可以有自己的发布文件夹和svn:忽略它。也许只是让每个开发人员创建一个定义其用户参数的非提交XML文件?我不知道,有什么想法吗?!

5 个答案:

答案 0 :(得分:5)

特定于开发人员的配置文件可以正常工作。

在存储库中有一个“默认”配置,其中.default.sample或其他内容附加到文件名中,当开发人员第一次检出它时,他们会复制该文件,删除扩展,并根据需要自定义,而不会影响其他任何人。

有更好的方法吗?大概。但我还没找到。

答案 1 :(得分:2)

将数据存储在Local Shared Object中,然后每个开发人员都可以拥有自己的默认值,而不会有任何hacky东西。创建仅在本地可访问的表单,并使用它来查看/编辑默认值。将数据存储在LSO中。在应用程序启动时,检查FlashVars,如果不存在,请检查LSO。

答案 2 :(得分:2)

您可以在FLASH IDE中使用条件编译。

以下是代码示例:

package{

    import flash.display.Sprite;

    public class Main extends Sprite {

        CONFIG::USER_A
        private static const PATH:String="user_a_path";
        CONFIG::USER_B
        private static const PATH:String="user_b_path";

        public function Main(){
            trace("current path >",PATH);
        }       

    }

}

然后在flash IDE编译选项中添加2个常量:

CONFIG::USER_A
CONFIG::USER_B

为用户切换设置值falsetrue

更多信息here

答案 3 :(得分:1)

你可以用 FDT

来做到这一点

选中“compliation后打开URI”(调试配置面板)

并设置URI:

bin/main.swf?test="this is a test"&test2="this is a test"

这将充当flashVar。

答案 4 :(得分:0)

有几种解决方案。从编程的角度来看,一个好的方法是拥有一个名为“LocalConfig.as”的独立静态类。

在原始的.as文件中。会有(伪代码):

import common.LocalConfig;
...
public static const DEFAULT_GAME:String = LocalConfig.gameName;
...

}

让我们使用Static类来简化它(伪代码):

// Static class:
 package
{
    public class LocalConfig
    {
        public static var gameName:String = "Game1";


        public function LocalConfig()
        {}
    }
}

下一步,在Source Control中将其检入项目的common / LocalConfig文件夹中。然后,在本地计算机中将其设置为忽略签出,以便本地用户计算机上不存在。

最后,您想将其放入程序员与源代码管理流程隔离的本地“global include / common /”文件夹中。

修改

删除了我的Singleton类引用。使用Static类就足够了。