1

这可能是一个奇怪的问题,但我想知道是否有任何方法可以有效地(也许使用命名空间?)在 actionscript 项目中的每个开发人员的类中具有不同的默认变量。我问是因为我们目前正在开发一系列 Flash 游戏:总共 24 个。每个都由一个外壳容器加载。shell 接收一个用于加载哪个游戏的 flash var。在我们的开发环境(Flash/FlashDevelop)中,没有 flashvar,所以 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 模板中设置 flashvar,然后每个开发人员都可以拥有自己的发布文件夹并 svn:ignore 。也许只是让每个开发人员创建一个非提交的 XML 文件来定义他们的用户参数?我不知道,有什么想法吗?!

4

5 回答 5

5

开发人员特定的配置文件往往会起作用。

在存储库中有一个“默认”配置,文件名附加.default.sample或其他内容,当开发人员第一次签出时,他们复制该文件,删除扩展名,并在不影响任何人的情况下尽可能多地自定义它别的。

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

于 2010-02-04T02:01:49.427 回答
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供用户切换

更多信息在这里

于 2010-02-05T09:44:02.247 回答
2

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

于 2010-02-04T03:12:08.740 回答
1

那么你可以用FDT做到这一点:

检查“编译后打开 URI”(调试配置面板)

并设置 URI:

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

这将充当 flashVar。

于 2010-02-04T13:12:16.777 回答
0

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

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

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

}

让我们使用一个静态类来使它更容易(伪代码):

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


        public function LocalConfig()
        {}
    }
}

下一步,您将其签入源代码管理中项目的 common/LocalConfig 文件夹。然后,在本地计算机中将其设置为从签出时忽略,因此它在本地用户计算机上不存在。

最后,您想将其放入与源代码控制进程隔离的程序员的本地“全局包含/公共/”文件夹中。

编辑:

删除了我的 Singleton 类参考。使用静态类就足够了。

于 2010-02-04T04:03:32.547 回答