User Guide
978 Chapter 2: ActionScript Language Reference
this
Availability
Flash Player 5.
Usage
this
Description
Identifier; references an object or movie clip instance. When a script executes, this references the
movie clip instance that contains the script. When a method is called,
this contains a reference
to the object that contains the called method.
Inside an
on() event handler attached to a button, this refers to the Timeline that contains the
button. Inside an
onClipEvent() event handler attached to a movie clip, this refers to the
Timeline of the movie clip itself.
Because
this is evaluated in the context of the script that contains it, you can’t use this in a
script to refer to a variable defined in a class file. Create ApplyThis.as, and enter the following
code:
class ApplyThis {
var str:String = "Defined in ApplyThis.as";
function conctStr(x:String):String {
return x+x;
}
function addStr():String {
return str;
}
}
Then, in a FLA or AS file, add the following 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
Similarly, to call a function defined in a dynamic class, you must use this to invoke the function
in the proper scope:
// 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());
CHAPTER 2
ActionScript Language Reference