关于在Flash AS3中使用框架和功能

时间:2014-10-08 05:30:01

标签: actionscript-3 flash

我的问题是,在Flash游戏中,我使用不同的帧级别。而且我对函数如何为此工作感到困惑。我的第一帧工作正常但我需要帮助在其他帧上使用函数并保持特定于一帧的函数。任何帮助表示赞赏,只是一个简单的快速解释

2 个答案:

答案 0 :(得分:1)

您无法将功能与特定帧相关联。

当您在帧上执行代码时,实际发生的是MovieClip包含该帧将调用一个名为addFrameScript()的函数,并向其传递您在帧上写入的代码的表示。 / p>

这意味着:

  • 在您访问定义函数的框架之前,您无法调用所述函数。
  • 访问定义函数的框架后,该函数将附加到父MovieClip,并且您可以在时间轴中任何时间点或之后调用该函数。
  • 如果您尝试在不同的框架上定义具有相同名称的新功能,则会出现1021: Duplicate function definition错误。

不是为每个帧或级别创建新函数,而是应该创建一个能够处理代表级别的不同信息的函数,例如

function loadLevel(level:int):void
{
    // Do stuff with the value of level.
    // For example, this function might look at a data source that maps
    // the level numbers to some level data representing tile placement.
}

这可以在第一帧上定义,然后在每个后续帧上定义:

loadLevel(1); // Frame 2
loadLevel(2); // Frame 3
// ...etc

所有这一切当然都不理想,可以更好地避免时间表,而是使用AS3提供的OOP范例。

答案 1 :(得分:0)

我发现在同一场景中使用多个级别对我来说无疑会让人头疼。 我不是专家&我确信在很多情况下都可以这样做,而且我看过一些使用1帧1场景创建的精彩游戏。所有代码都在外部.as。

然而,我发现每个级别只使用1帧并将每个级别放在不同的场景中会更容易。