2014-10-08 81 views
0

我的问题是,在Flash游戏中,我使用不同的帧作为关卡。我很困惑如何功能为此工作。我的第一帧工作正常,但我需要帮助使用其他帧的功能和保持特定于一个帧的功能。任何帮助表示赞赏,只是一个简单的解释在Flash中使用帧和函数AS3

回答

1

您不能将函数与特定的框架关联。

当您在一个框架上执行代码时,实际发生的情况是包含该框架的MovieClip将调用一个名为addFrameScript()的函数,并将其传递给您在该框架上编写的代码的表示。

这意味着:

  • 直到你访问一个定义了一个函数的框架,你不能叫说功能。
  • 一旦访问了定义函数的框架,该函数就会附加到父影片剪辑,并且您可以在时间轴中的任何时刻调用该函数。
  • 如果您尝试在不同的框架上定义一个具有相同名称的新功能,将会出现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 

所有这当然是不理想的并且可以做得更好避免时间轴,而是使用以OOP AS3提供的范例。

0

我发现在同一场景中使用多个级别会导致我无法结束头痛。 我不是专家&我敢肯定它可能在很多情况下这样做,我见过一些伟大的游戏创建使用1帧1场景&所有代码在外部.as。

但是,我发现自己更容易使用每个级别的1帧,并将每个级别放在不同的场景中。