在这部分代码中,我正在检查游戏中的关卡是否已解锁。数组“levels”包含 12 个影片剪辑,“levelsUnlocked”是用户达到的最高级别。因此,使用此代码,我正在检查级别位置是否高于 levelsUnlocked 值,如果是,则将其移动到第 2 帧(即锁定图像),如果较低,则将其保持在第 1 帧。
我的问题是:
在 else 语句中,当我引用levels[levels.length - i] 时,它不会将其视为Movieclip,但如果我将其称为levels[1] 或levels[3],它会这样做。有人可以告诉我为什么会这样吗?
function unlockLevels():void
{
for (var i:int = 0; i < levels.length; i++)
{
if (levels.length - i > levelsUnlocked)
{
levels[levels.length - i].gotoAndStop(2);
}
else
{
levels[levels.length - i].gotoAndStop(1);
}
}
}