这可能是一个奇怪的问题,但我想知道是否有任何方法可以有效地(可能使用命名空间?)在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文件?我不知道,有什么想法吗?!
答案 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
为用户切换设置值false
或true
更多信息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类就足够了。