get 语句
function get property () {
// your statements here
}
允许隐式获取与某些对象关联的属性,这些对象基于外部类文件中定义的类。通过使用隐式
获取方法,您可以不必直接访问属性就访问对象的属性。隐式 get/set 方法是对
ActionScript 1.0 中 Object.addProperty() 方法的句法简化。
可用性:Flash Player 6 ; ActionScript 2.0
参数
property:String - 用来引用 get 访问的属性的词;该值必须与相应的 set 命令中使用的
值相同。
语句 199
示例
在下面的示例中,定义一个 Team 类。Team 类包括用于在该类内检索和设置属性的 get/set
方法:
class Team {
var teamName:String;
var teamCode:String;
var teamPlayers:Array = new Array();
function Team(param_name:String, param_code:String) {
this.teamName = param_name;
this.teamCode = param_code;
}
function get name():String {
return this.teamName;
}
function set name(param_name:String):Void {
this.teamName = param_name;
}
}

 

 

 

 

 

this 属性
this
引用对象或影片剪辑实例。执行脚本时,this 引用包含该脚本的影片剪辑实例。在调用方法
时, this 包含对包含所调用方法的对象的引用。
在附加到按钮的 on() 事件处理函数中,this 引用包含该按钮的时间轴。在附加到影片剪辑
的 onClipEvent() 事件处理函数中, this 引用该影片剪辑自身的时间轴。
因为 this 是在包含它的脚本的上下文中计算的,所以您不能在脚本中使用 this 来引用在
类文件中定义的变量。
可用性:Flash Player 5 ; ActionScript 1.0
示例
创建名为 ApplyThis.as 的 ActionsScript 文件,然后输入以下代码:
class ApplyThis {
var str:String = "Defined in ApplyThis.as";
function conctStr(x:String):String {
return x+x;
}
function addStr():String {
return str;
}
}
接下来,在一个 FLA 或单独的 ActionScript 文件中,添加以下代码
var obj:ApplyThis = new ApplyThis();
var abj:ApplyThis = new ApplyThis();
abj.str = "defined in FLA or AS";
trace(obj.addStr.call(abj, null)); //output: defined in FLA or AS
trace(obj.addStr.call(this, null)); //output: undefined
trace(obj.addStr.call(obj, null)); //output: Defined in applyThis.as

 

同样,若要调用在动态类中定义的函数,您必须使用 this 调用适当范围内的函数:
// incorrect version of Simple.as
/*
dynamic class Simple {
function callfunc() {
trace(func());
}
}
*/
// correct version of Simple.as
dynamic class simple {
function callfunc() {
trace(this.func());
}
}
在 FLA 或单独的 ActionScript 文件中,添加以下代码:
var obj:Simple = new Simple();
obj.num = 0;
obj.func = function() {
return true;
};
obj.callfunc();
// output: true
当您在 callfunc() 方法中使用 this 时,以上代码生效。不过,如果您使用了不正确的
Simple.as 版本,将出现语法错误 (在上例中已注释掉)。
在下面的示例中,关键字 this 引用 Circle 对象:
function Circle(radius:Number):Void {
this.radius = radius;
this.area = Math.PI*Math.pow(radius, 2);
}
var myCircle = new Circle(4);
trace(myCircle.area);
在下面分配给影片剪辑内的帧的语句中,关键字 this 引用当前的影片剪辑。
// sets the alpha property of the current movie clip to 20
this._alpha = 20;
在下面的 MovieClip.onPress 处理函数内的语句中,关键字 this 引用当前的影片剪辑:
this.square_mc.onPress = function() {
startDrag(this);
};
this.square_mc.onRelease = function() {
stopDrag();
};
另请参见

 

 

call(Function.call 方法)
public call(thisObject:Object, [parameter1:Object]) : Object
调用 Function 对象表示的函数。 ActionScript 中的每个函数都由一个 Function 对象来表
示,所以所有的函数都支持此方法。
几乎在所有的情形下,都可以使用函数调用运算符 (()) 来代替此方法。函数调用运算符使代
码简明易读。此方法主要用于需要显式控制函数调用中的 thisObject 参数时。通常,如果
将函数作为对象的方法来调用,则在函数体内,thisObject 设置为 myObject,如下面的示
例所示:
myObject.myMethod(1, 2, 3);
在某些情况下,您可能希望 thisObject 指向其它地方;例如,函数必须作为对象的方法进
行调用,但该函数实际上并不作为该对象的方法进行存储。
myObject.myMethod.call(myOtherObject, 1, 2, 3);
您可以将值 null 传递给 thisObject 参数,以便作为常规函数而不是作为对象的方法来调用
函数。例如,下面的函数调用是等效的:
Math.sin(Math.PI / 4)
Math.sin.call(null, Math.PI / 4)
返回被调用函数指定为返回值的值。
可用性:ActionScript 1.0 ; Flash Player 6
参数
thisObject:Object - 一个对象,指定函数体内 thisObject 的值。
parameter1:Object [ 可选 ] - 要传递给 myFunction 的参数。可以指定零个或多个参数。
返回
Object -
示例
下面的示例使用 Function.call() 使函数表现得像另一个对象的方法,而不将函数存储在
该对象中:
function myObject() {
}
function myMethod(obj) {
trace("this == obj? " + (this == obj));
}
var obj:Object = new myObject();
myMethod.call(obj, obj);
trace() 语句将显示:
this == obj? true

/////////////////////////////////////

 

 

call(Function.call 方法)

public call(thisObject:Object, [parameter1:Object]) : Object

 

 

调用 Function 对象表示的函数。ActionScript 中的每个函数都由一个 Function 对象来表示,所以所有的函数都支持此方法。

几乎在所有的情形下,都可以使用函数调用运算符 (()) 来代替此方法。函数调用运算符使代码简明易读。此方法主要用于需要显式控制函数调用中的 thisObject 参数时。通常,如果将函数作为对象的方法来调用,则在函数体内,thisObject 设置为 myObject,如下面的示例所示:

myObject.myMethod(1, 2, 3);

 

 

在某些情况下,您可能希望 thisObject 指向其它地方;例如,函数必须作为对象的方法进行调用,但该函数实际上并不作为该对象的方法进行存储:

myObject.myMethod.call(myOtherObject, 1, 2, 3); 

 

 

您可以将值 null 传递给 thisObject 参数,以便作为常规函数而不是作为对象的方法来调用函数。例如,下面的函数调用是等效的:

Math.sin(Math.PI / 4)
Math.sin.call(null, Math.PI / 4)

 

 

返回被调用函数指定为返回值的值。

可用性:ActionScript 1.0、Flash Player 6

参数

thisObject:Object ― 一个对象,指定函数体内 thisObject 的值。

parameter1:Object [可选] ― 要传递给 myFunction 的参数。可以指定零个或多个参数。

返回

Object

示例

下面的示例使用 Function.call() 使函数表现得像另一个对象的方法,而不将函数存储在该对象中:

function myObject() {
}
function myMethod(obj) {
trace("this == obj? " + (this == obj));
}
var obj:Object = new myObject();
myMethod.call(obj, obj);

 

 

trace() 语句将显示:

this == obj? true