好的,所以我以前曾设法做到这一点,但我根本不记得当时是如何找到或找到的来源。我正在制作一个简单的 Flash 游戏。有几个角色在移动。为了使每个级别都比其他级别更难,我决定逐级更改每个角色的移动速度。如果我在第 1 帧的主时间轴上声明这些变量并为其赋值,则它不会按我想要的方式工作。当您进入另一个帧中的第 2 级时,速度会按预期上升。但是当你进入下一个级别,即移动速度更高的级别 1 时,会再次处理赋值,这意味着移动速度会回到从头开始。
//frame 1
var speed:int = 5;
//level accomplished, speed++, goto frame 2
//frame 2
//level accomplished, speed++, goto frame 1
然后第 1 帧上的所有代码再次运行,将“速度”的值设置回 5。
我曾尝试将变量放在一个类中,但问题仍然相同,每次回到第 1 帧时,代码“var speed:Speed = new Speed();” 再次运行,变量的值回到我在 speed.as 文件中分配的值。
我尝试了很多不同的组合,只是将全局变量放在包内但在任何类之外,以便始终可以全局访问它而无需创建新对象。
这是我当前的代码:
//speed.as
package
{
public var speed:int = 5;
}
//game.fla
import speed;
trace(speed);
这会引发错误“访问可能未定义的属性速度...”
正如我所说,我尝试了许多不同的组合并得到了许多不同的错误,我在谷歌上搜索和挖掘了 8-9 个小时,这让我发疯。你们现在是我最后的希望,我将非常感谢一个简单地告诉我如何使用我的全局变量的答案(我知道全局变量很糟糕,看到很多人写它,即使我真的不知道为什么) ,如果有另一个简单和更好的解决方案,请告诉我,但我不想重写整个代码或任何东西以使其与其他解决方案兼容。我知道全局变量会为我解决这个问题,我只是不知道如何使用它们。
我将需要有关在 .as 文件和 .fla 文件中做什么的说明。提前致谢!