我最近遇到了一些令人尴尬的情况,我不得不意外地向客户端发送了一个构建,而不是所有的调试标志和变量都未设置.(它正在向调试发送请求而不是发布服务器等...)
部分原因是我的代码组织很差; 我已经解决了这个问题.
但是,Flash似乎不允许设置不同的构建配置,并且Actionscript Compile设置托管各种交换机,以便忘记检查/取消选中某些内容(OMG,我忘了禁用调试器支持!)就像发生在我身上一样.在任何情况下,我发现在我的发布配置和调试配置之间手动跳转很容易搞砸.
那么,其他开发人员,您使用什么技术来防止在测试配置和您向老板/客户/谁发出的构建配置之间跳转?
我知道我应该慢下来,但我更喜欢设置一些东西,我只能翻转开关.经过长时间的中断后我才重新回到Flash中(Flash MX + 2004年的一点点).
哦,我知道禁用调试支持和设置导入密码是徒劳的,所有这一切,我的目标是简单地将脚本小子放在我的项目之外.反编译器胜过一切......
无论如何,谢谢!
如果您使用的是Flash CS4,则可以使用配置常量.您可以在"发布设置"|"ActionScript3.0设置..."|"配置常量"下找到它们
如果你添加了DEBUG :: PLAYER,那么你可以使用这样的代码:
config namespace DEBUG; //... code here ... DEBUG::PLAYER { trace("Player state here"); }
现在你可以在true和false之间切换常量.
我使用环境类,如下所示:
public class MyEnvironment { public static const DEBUG:Boolean = true; public static const SERVER:String = 'localhost'; // More here }
将其导入到主ActionScript类中,并确保所有辅助函数都引用它.例如,您的调试器函数应该只在MyEnvironment.DEBUG
为true时运行,并且您的网络函数应该发送请求MyEnvironment.SERVER
.
在我的设置中,我将其保存为MyEnvironment.as
.(显然,类名是在现实生活中一样.)我也想复制另存为MyEnvironment.as-debug
和MyEnvironment.as-release
; 后者会有不同的设置.然后,如果我需要发布版本,我的构建脚本将复制MyEnvironment.as-release
到MyEnvironment.as
(覆盖原始版本),然后重新编译.这将把我的所有发布设置加载到我的主ActionScript类中; 如果我为调试版本运行脚本,则相反.