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 action attached to a button, this refers to the Timeline that contains the button. Inside an onClipEvent() event handler action 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:

// in file applyThis.as
class applyThis{
  var str:String = "Defined in applyThis.as";
  function conctStr(x:String):String{
    return x+x;
  }

  function addStr():String{
    return str;
  }
}

// Use following code in FLA to test movie
import applyThis;

var obj:applyThis = new applyThis();
var abj:applyThis = new applyThis();
abj.str = "defined in FLA";

trace(obj.addStr.call(abj,null));    // defined in FLA
trace(obj.addStr.call(this,null));   // undefined
trace(obj.addStr.call(obj,null));    // Defined in applyThis.as

Similarly, to call a function defined in a dynamic class, you must use this to scope the function:

// 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());
  }
}
// statements in FLA file
import simple;
var obj:simple = new simple();
obj.num = 0;
obj.func = function():Boolean{
  return true;
}
obj.callfunc(); // syntax error with incorrect version of simple.as

Example

In the following example, the keyword this references the Circle object.

function Circle(radius) {
  this.radius = radius;
  this.area = Math.PI * radius * radius;
}

In the following statement assigned to a frame, the keyword this references the current movie clip.

// sets the alpha property of the current movie clip to 20
this._alpha = 20;

In the following statement inside an onClipEvent() handler, the keyword this references the current movie clip.

// when the movie clip loads, a startDrag() operation
// is initiated for the current movie clip.

onClipEvent (load) {
  startDrag (this, true);
}

See also

on(), onClipEvent()