变量可用来存储程序中使用的值。要声明变量,必须将 var 语句和变量名结合使用。在 ActionScript 2.0 中,只有当您使用类
型注释时,才需要使用 var 语句。在 ActionScript 3.0 中,总是需要使用 var 语句。例如,下面的 ActionScript 行声明一个名
为 i 的变量:
var i;
如果在声明变量时省略了 var 语句,则在严格模式下会出现编译器错误,在标准模式下会出现运行时错误。例如,如果以前未
定义变量 i,则下面的代码行将产生错误:
i; // error if i was not previously defined
var i:int;
var i:int;
i = 20;
var i:int = 20;
通常,在声明变量的同时为变量赋值的方法不仅在赋予基元值 (如整数和字符串)时很常用,而且在创建数组或实例化类的实
var numArray:Array = ["zero", "one", "two"];
var customItem:CustomClass = new CustomClass();
var a:int, b:int, c:int;
var a:int = 10, b:int = 20, c:int = 30;
变量的范围是指可在其中通过词汇引用来访问变量的代码区域。全局变量是指在代码的所有区域中定义的变量,而局部变量是
指仅在代码的某个部分定义的变量。在 ActionScript 3.0 中,始终为变量分配声明它们的函数或类的作用域。全局变量是在任
何函数或类定义的外部定义的变量。例如,下面的代码通过在任何函数的外部声明一个名为 strGlobal 的全局变量来创建该变
量。从该示例可看出,全局变量在函数定义的内部和外部均可用。
var strGlobal:String = "Global";
function scopeTest()
{
trace(strGlobal); // Global
}
scopeTest();
trace(strGlobal); // Global
function localScope()
{
var strLocal:String = "local";
}
localScope();
trace(strLocal); // error because strLocal is not defined globally
如果用于局部变量的变量名已经被声明为全局变量,那么,当局部变量在作用域内时,局部定义会隐藏 (或遮蔽)全局定义。
var str1:String = "Global";
function scopeTest ()
{
var str1:String = "Local";
trace(str1); // Local
}
scopeTest();
trace(str1); // Global
function blockTest (testArray:Array)
{
var numElements:int = testArray.length;
if (numElements > 0)
{
var elemStr:String = "Element #";
for (var i:int = 0; i < numElements; i++)
{
var valueStr:String = i + ": " + testArray[i];
trace(elemStr + valueStr);
}
trace(elemStr, valueStr, i); // all still defined
}
trace(elemStr, valueStr, i); // all defined if numElements > 0
}
blockTest(["Earth", "Moon", "Sun"]);
trace(num); // NaN
var num:Number = 10;
trace(num); // 10
num = 5;
trace(num); // 5
var num:Number = 10;
trace(num); // 10
数据类型 | 默认值 |
Boolean | false |
int | 0 |
Number | NaN |
Object | null |
String | null |
uint | 0 |
未声明 (与类型注释 * 等效) | undefined |
其它所有类 (包括用户定义的类) 。 | null |