所以我花了令人尴尬的几个小时试图为自己节省几分钟并让我的代码更整洁,而 Google 什么也没产生,所以现在我爬到 stackoverflow 上。问题在于方括号符号+库项目:
因此,假设您有一个名为“myMC_5”的影片剪辑,并且您想将其 X 位置设置为 0..
myMC_5.x = 0;
..如果您不想硬编码 MC 的名称,而是希望一行代码根据变量移动特定的 MovieClip,您可以执行以下操作:
var selectMC = 5;
root["myMC_"+selectMC]x = 0;
..这将具有与 myMC_5.x = 0 完全相同的效果,只是这次您必须指定位置(“root”或“this”或其他内容)。
问题:
我正在开发一个游戏,其中背景的图形是从库中加载的,并且每个级别都不同。从库中初始加载向量如下所示:
private var land:vector_land0 = new vector_land0();
..这很好用,但它只加载一个特定的向量。应该有大约30个或更多。我想在构造函数中有一行代码来加载它们中的任何一个,基于一个跟踪当前级别的变量,如下所示:
private var land:["vector_land"+theLevel] = new ["vector_land"+theLevel]();
..但这不起作用。我收到语法错误(“在左括号之前需要标识符”),因为您需要指定对象的位置,就像在第一个示例中一样:
root["myMC_"+"whatever"].x = 0;
..但是这个图书馆项目没有“位置”。那么,我到底如何从库中动态加载向量呢?它不是“在根上”,也不是在其他任何地方。它没有位置。我不相信实现这一点的标准方法是创建 30 个不同的类或用 30 个“if”语句编写一个巨大的代码块,但搜索 Google 却一无所获。:(