全局变量

全局变量和函数对于您的文档中的每一时间轴和范围而言都是可见的。要声明(或创建)具有全局范围的变量,请在变量名前使用 _global 标识符,而不要使用 var = 语法。例如,以下代码创建全局变量 myName

var _global.myName = "George"; // 全局变量的错误语法
_global.myName = "George"; // 全局变量的正确语法

但是,如果您使用与全局变量相同的名称初始化一个局部变量,则在处于该局部变量的范围内时对该全局变量不具有访问权限,如下例所示:

_global.counter = 100; // 声明全局变量
trace(counter); // 访问全局变量并显示 100
function count():Void {
    for (var counter:Number = 0; counter <= 2; counter++) { // 局部变量
        trace(counter); // 访问局部变量并显示 0 到 2
    }
}
count();
trace(counter); // 访问全局变量并显示 100

此示例只是表明在 count() 函数范围内未访问该全局变量。但是,如果加上一个 _global 前缀,您就可以访问具有全局范围的变量了。例如,如果为 counter 加上前缀 _global,就可以访问它,如下面的代码所示:

trace(_global.counter);

您不能为在 _global 范围中创建的值指定严格的数据类型,因为在指定数据类型时必须使用 var 关键字。例如,您不能执行以下操作:

_global.foo:String = "foo";          //语法错误
var _global.foo:String = "foo"; //语法错误

当通过从独立安全域加载的 SWF 文件访问全局变量时,Flash Player 7 及更高版本的安全沙箱将强行施加限制。有关详细信息,请参阅"了解安全性"