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

Actionscript 3 在ActionScript3中,如何根据另一个变量的值动态包含具有特定名称的文件?,actionscript-3,actionscript,include,Actionscript 3,Actionscript,Include,我有一个变量“level”,根据该数字变量的值,我希望包含一个文件,以及该特定级别的级别设置。级别文件称为“Level1Definition.as”、“Level2Definition.as”、“Level3Definition.as”等。当我试图形成这样的代码行时: include "Level" + level + "Definition.as"; ,我得到一个错误: Expecting semicolon before plus. 如何在运行时包含其名称(文件名)是使用变量形成的文件?

我有一个变量“level”,根据该数字变量的值,我希望包含一个文件,以及该特定级别的级别设置。级别文件称为“Level1Definition.as”、“Level2Definition.as”、“Level3Definition.as”等。当我试图形成这样的代码行时:

include "Level" + level + "Definition.as";
,我得到一个错误:

Expecting semicolon before plus.

如何在运行时包含其名称(文件名)是使用变量形成的文件?

这不起作用,因为include语句是在编译之前/期间执行的,但变量的值是在运行时确定的


问题的核心是将数据与逻辑混为一谈。您不应该为各个级别设置不同的类。相反,创建一个表示常规级别对象的级别类。创建该类的实例,并将特定于该级别的数据传递给对象。这些数据通常在运行时从文件或服务器加载,然后在使用之前进行反序列化(从json、XML或任何使用的格式)。如果不推荐,请在执行时对大量数据进行硬编码。它还需要在级别更改时重新编译所有内容。

这不起作用,因为include语句在编译之前/期间执行,但变量的值在运行时确定


问题的核心是将数据与逻辑混为一谈。您不应该为各个级别设置不同的类。相反,创建一个表示常规级别对象的级别类。创建该类的实例,并将特定于该级别的数据传递给对象。这些数据通常在运行时从文件或服务器加载,然后在使用之前进行反序列化(从json、XML或任何使用的格式)。如果不推荐,请在执行时对大量数据进行硬编码。它还需要在级别更改时重新编译所有内容。

在ActionScript中,您可以定义一个接口,本质上说“这些是此类对象将始终具有的方法和属性。”接口非常适合让您创建真正灵活的实现,而无需使用实现的代码就必须了解内部情况。不必了解内部结构的一个优点是,不需要将这些知识编译到调用代码中


如果应用程序加载已编译的代码是有意义的,那么使用接口确实可以让您在实现中自由地做任何您想做的事情,并且在将来需要多少接口就有多少

在ActionScript中,您可以定义一个接口,它本质上说“这些是此类对象将始终具有的方法和属性”。接口非常适合于创建真正灵活的实现,而无需使用需要了解内部结构的实现的代码。不必了解内部结构的一个优点是,不需要将这些知识编译到调用代码中


如果应用程序加载已编译的代码是有意义的,那么使用接口确实可以让您在实现中自由地做任何您想做的事情,并且在将来需要多少接口就有多少

@WillTower问题是如何包含使用变量形成名称(文件名)的文件?(我编辑了原始问题,虽然问题的标题很清楚)。我希望在游戏中的不同时间点(时间点,基本上是瞬间)包含不同的文件。目的是我想根据这些单独的文件生成级别。所以,我想在游戏的不同时刻加入他们。所以,如果你仔细想想,这个时刻永远不会在编译时出现。@WillTower问题是,我如何才能包含名称(文件名)是使用变量形成的文件?(我编辑了原始问题,虽然问题的标题很清楚)。我希望在游戏中的不同时间点(时间点,基本上是瞬间)包含不同的文件。目的是我想根据这些单独的文件生成级别。所以,我想在游戏的不同时刻加入他们。所以,如果你仔细想想,这一刻永远不在编译时。你也可以让你的不同级别实现一个接口,并将每个接口编译成一个swf,然后在运行时加载。@Amy Blankenship为什么不将此作为一个答案发布呢?如果两个级别在功能上有很大差异,这可能是一个更好的解决方案。您也可以让不同级别实现一个接口,并将每个接口编译成运行时加载的swf。@Amy Blankenship为什么不将此作为答案发布?如果级别在功能上有很大差异,这可能是一个更好的解决方案。