好吧,所以我设法做了一次之前,但我根本不记得如何或找到我当时发现的来源。我正在制作一个简单的Flash游戏。有几个角色在移动。为了使每个级别比另一个级别更难,我决定改变每个角色从一级到另一级的移动速度。如果我在第1帧的主时间轴上声明和赋值这些变量,它不会按照我想要的方式工作。当你到达另一个框架中的第2级时,速度会像它应该那样上升。但是当您进入更高级别(更高移动速度)的下一级时,值分配会再次进行处理,这意味着移动速度会变回原点。AS3全局变量
//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文件中执行操作的说明。提前致谢!
如果命名类像'GlobalConstants'和使用'const'关键字,而不是'var'它不是那么糟糕。 – TheDarkIn1978
是的,如果他使用它为常量:) 他want's使用全局变量。 – codingbuddha
感谢您输入每个人的事情是,就像我说的,如果我把这些变量在一个类中我必须把“变种速度:速度=新速度();”在时间轴上的代码中访问它。此代码运行良好,直到游戏返回到第1帧,然后此代码再次运行,重置速度值。这又回到了6至5,而不是上升到7 我知道,我已经得到了它早些时候像这样的工作: 包 { 公共变种速度:INT = 5; } 类似的东西ATLEAST,但这个确切的代码将无法正常工作,我找做的正是这种正确的方式,我似乎不能这样做的权利=( –