在动作脚本 3 中,如何根据另一个变量的值动态包含具有特定名称的文件?

In action script 3, how can I dynamically include a file with certain name, based on a value of another variable?

我有一个变量 "level",并且基于该 Number 变量的值,我想要一个包含该特定级别的级别设置的文件。级别文件称为 "Level1Definition.as"、"Level2Definition.as"、"Level3Definition.as" 等。当我尝试像这样形成那行代码时:

include "Level" + level + "Definition.as";

,我得到一个错误:

Expecting semicolon before plus.

如何在运行时包含名称(文件名)由变量构成的文件?

那不行,因为include语句是执行before/during编译的,但是你变量的值是运行时决定的。

你的问题的核心是你把数据和逻辑混在一起了。您不应该为各个级别设置不同的 classes。相反,创建一个代表一般级别对象的级别 class。创建该 class 的实例并将特定于该级别的数据传递给对象。此数据通常在运行时从文件或服务器加载,然后在使用前反序列化(从 json、XML 或使用的任何格式)。如果不推荐,请像您一样对大量数据进行硬编码。这也使得在更改级别时必须重新编译所有内容。

在 ActionScript 中,您可以定义一个接口,本质上说 "these are the methods and properties that this type of object will always have." 接口非常适合让您创建真正灵活的实现,而无需使用实现的代码了解内部结构。不必了解内部结构的一个优点是不需要将该知识编译到调用代码中。

如果您的应用程序加载编译后的代码有意义,那么使用接口确实可以让您腾出时间在实现中做任何您想做的事情,并在未来拥有尽可能多的接口。 Here's an answer where I talk more about this.