Flash 具有多个开发人员的默认变量

Flash 具有多个开发人员的默认变量,flash,actionscript-3,collaboration,Flash,Actionscript 3,Collaboration,这可能是一个奇怪的问题,但我想知道是否有任何方法可以有效地(可能使用名称空间?)在actionscript项目中每个开发人员的类中使用不同的默认变量。我这样问是因为我们目前正在开发一系列Flash游戏:总共24款。每个都由一个外壳容器装载。shell收到一个flash变量,用于加载游戏。在我们的开发环境(Flash/FlashDevelop)中,没有flashvar,因此AS中的一个常量定义了在没有flashvar的情况下加载哪个游戏: /** Game to load during debug

这可能是一个奇怪的问题,但我想知道是否有任何方法可以有效地(可能使用名称空间?)在actionscript项目中每个开发人员的类中使用不同的默认变量。我这样问是因为我们目前正在开发一系列Flash游戏:总共24款。每个都由一个外壳容器装载。shell收到一个flash变量,用于加载游戏。在我们的开发环境(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)的更改时,开发人员必须将其更改回去或撤消更改,并且当其他人更改时,每个开发人员必须将其更改为自己的游戏


想知道是否有一种方法可以在flashide或用户特定的文件中指定类似于Flashvars的默认参数,从而使代码不受hacky调试变量的影响。我知道在Flex中可以在html模板中设置FlashVar,然后每个开发人员都可以拥有自己的发布文件夹和svn:忽略它。也许只是让每个开发人员创建一个非提交的XML文件来定义他们的用户参数?我不知道,有什么想法吗

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

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


有更好的办法吗?可能但是我还没有找到它。

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

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


有更好的办法吗?可能但是我还没有找到它。

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

将数据存储在
本地共享对象中,然后每个开发人员都可以拥有自己的默认值,而无需任何黑客攻击。创建一个只能在本地访问的表单,并使用它查看/编辑默认值。将数据存储在LSO中。在应用程序启动时,检查FlashVar,如果不存在,检查LSO。

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

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

让我们使用一个静态类来简化它(伪代码):

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

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

编辑:


删除了我的单例类引用。使用静态类就足够了。

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

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

让我们使用一个静态类来简化它(伪代码):

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

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

编辑:


删除了我的单例类引用。使用静态类就足够了。

您可以使用FDT来实现这一点:

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

并设置URI:

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

这将充当flashVar。

您可以使用FDT来实现这一点:

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

并设置URI:

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

这将充当flashVar。

您可以在FlashIDE中使用条件编译

下面是一个代码示例:

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
并为用户切换设置值
false
true


更多信息

您可以在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
并为用户切换设置值
false
true


更多信息

不错的解决方案!我也会尝试。我认为这将是一个伟大的空气应用程序!很好的解决方案!我也会尝试。我认为这将是一个伟大的空气应用程序!我不知道为什么你认为这个类需要是一个单例类,属性是静态的也有意义,但是我建议这个类使用它。你是对的。在这种情况下,当变量为常量时,Singleton没有意义。不知道为什么您认为该类需要为Singleton,并且该属性为静态也有意义,但我建议将其用于该类。您是对的。在这种情况下,当变量为constantOh时,Singleton没有意义,这将非常好。我猜它必须用FDT编译,而不是Flash,是吗?调试配置面板在哪里?没关系。我以为FDT是另外一回事。不要那样。这是一个很好的特性