Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Flash AS3中帧和函数的使用_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 Flash AS3中帧和函数的使用

Actionscript 3 Flash AS3中帧和函数的使用,actionscript-3,flash,Actionscript 3,Flash,我的问题是,在一个flash游戏中,我使用不同的帧来设置关卡。我对函数是如何工作的感到困惑。我的第一个帧工作正常,但我需要帮助在其他帧上使用函数,并保持函数特定于一个帧。非常感谢您提供的任何帮助,只需简单快速的解释即可您无法将函数与特定帧相关联 在帧上执行代码时,实际发生的是包含该帧的MovieClip将调用名为addFrameScript()的函数,并向其传递您在帧上编写的代码的表示形式 这意味着: 在访问定义函数的框架之前,不能调用该函数 访问定义函数的帧后,该函数将附加到父MovieCl

我的问题是,在一个flash游戏中,我使用不同的帧来设置关卡。我对函数是如何工作的感到困惑。我的第一个帧工作正常,但我需要帮助在其他帧上使用函数,并保持函数特定于一个帧。非常感谢您提供的任何帮助,只需简单快速的解释即可

您无法将函数与特定帧相关联

在帧上执行代码时,实际发生的是包含该帧的
MovieClip
将调用名为
addFrameScript()
的函数,并向其传递您在帧上编写的代码的表示形式

这意味着:

  • 在访问定义函数的框架之前,不能调用该函数
  • 访问定义函数的帧后,该函数将附加到父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提供的面向对象范例。

我发现在同一场景中使用多个级别会让我头痛不已。 我不是专家&我相信在很多情况下都有可能做到这一点,我见过一些使用1帧1场景和外部.as中的所有代码创建的伟大游戏

然而,我发现我自己更容易使用每层1帧,并将每个层放在不同的场景中