Directo de la ayuda de Flash:
this
Disponibilidad
Flash Player 5.
Sintaxis
this
Descripción
Identificador; hace referencia a una instancia de objeto o de clip de película. Cuando se ejecuta un script, this hace referencia a la instancia de clip de película que contiene el script. Cuando se llama a un método, this contiene una referencia al objeto que contiene el método llamado.
Dentro de una acción de controlador de eventos on asociada a un botón, this se refiere a la línea de tiempo que contiene el botón. Dentro de una acción de controlador de eventos onClipEvent() asociada a un clip de película, this se refiere a la línea de tiempo del propio clip de película.
Como this se evalúa en el contexto del script que lo contiene, no puede utilizar this en un script para hacer referencia a una variable definida en un archivo de clase:
// en el archivo applyThis.as
class applyThis{
var str:String = "Definido en applyThis.as";
function conctStr(x:String):String{
return x+x;
}
function addStr():String{
return str;
}
}
// Utilice el código siguiente en FLA para probar la película
import applyThis;
var obj:applyThis = new applyThis();
var abj:applyThis = new applyThis();
abj.str = "definido en FLA";
trace(obj.addStr.call(abj,null)); // definido en FLA
trace(obj.addStr.call(this,null)); // no definido
trace(obj.addStr.call(obj,null)); // Definido en applyThis.as
Asimismo, para llamar a una función definida en una clase dynamic, debe utilizar this para el ámbito de la función:
// versión incorrecta de simple.as
dynamic class simple{
function callfunc(){
trace(func());
}
}
// versión correcta de simple.as
dynamic class simple{
function callfunc(){
trace(this.func());
}
}
// sentencias en el archivo FLA
import simple;
var obj:simple = new simple();
obj.num = 0;
obj.func = function():Boolean{
return true;
}
obj.callfunc(); // error de sintaxis con la versión incorrecta de simple.as
Ejemplo
En el ejemplo siguiente, la palabra clave this hace referencia al objeto Circle.
function Circle(radius) {
this.radius = radius;
this.area = Math.PI * radius * radius;
}
En la sentencia siguiente asignada a un fotograma, la palabra clave this hace referencia al clip de película actual.
// establece la propiedad alfa del clip de película actual en 20
this._alpha = 20;
En la sentencia siguiente dentro de un controlador onClipEvent(), la palabra clave this hace referencia al clip de película actual.
// cuando se carga el clip de película, se inicia una operación startDrag()
// para el clip de película actual.
onClipEvent (load) {
startDrag (this, true);
}
Véase también
on(), onClipEvent()
Espero te sirva, saludos.