这些AS3变量应该在哪里?

时间:2012-10-01 13:11:30

标签: actionscript-3 flash variables actionscript scope

我正在尝试为Actionscript 3中的平台游戏构建基础。我在AS3仍然相当新手,但我希望这有助于建立我的知识。

反正

据我所知,我可以通过扩展Sp​​rite / Movieclip类来创建与Sprite或MovieClip等相关联的Actionscript文件。我也知道作为'Document类'的Actionscript文件。

我游戏中的每个关卡都会有不同的属性,例如重力。我应该在哪里存储这些变量?显然不在播放器中...不确定它们是否应该进入时间轴或文档类,或者它们是否有自己的单独AS文件。我被告知有全局变量通常是坏的,所以我不知道该怎么做。

2 个答案:

答案 0 :(得分:2)

您可以将级别设置为单独的文件,甚至不是Actionscript,而是XML或JSON,因为您的级别基本上是具有不同起始值的数据结构。你可以创建一个Level类,它可以获取这样一个文件,解析它并根据读取的内容初始化游戏中的级别结构。是的,此类数据不应该转到时间轴,因为如果您需要更改该数据的一部分,它可能会隐式影响其他游戏进程。此外,一个简单的右键单击可以破坏这样的游戏:)我自己使用JSON文件作为我的级别数据持有者,我在初始化时解析它们,你可以这样做或者说当你的级别被加载时。

简而言之,如果某些内容因初始数据而异,但在方法中很常见,则它应与主代码或整个代码分开存在,并作为数据包含在内。

答案 1 :(得分:1)

我认为这个类似的问题和答案会对你有所帮助:

As3 OOP game structure (class architecture)

基本上,“你想要做的是将游戏中的变化与游戏本身分开”。所以绝对不要在时间轴中包含代码。