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