documentation flash this

Vous êtes ici: Les articles techniques » Documentations » Eléments du langage ActionScript » this, propriété

this, propriété

this

Fait référence à un objet ou une occurrence de clip. Lorsqu’un script s’exécute, this référence l’occurrence de clip qui contient le script. Lorsqu’une méthode est appelée, this contient une référence à l’objet qui contient la méthode appelée.

Dans un gestionnaire d’événement on() associé à un bouton, this renvoie au scénario qui contient le bouton. Dans un gestionnaire d’événement onClipEvent() associé à un clip, this renvoie au scénario du clip.

Dans la mesure où this est évalué dans le contexte du script qui le contient, vous ne pouvez pas utiliser this pour faire référence à une variable définie dans un fichier de classe.

Disponibilité : Flash Player 5 ; ActionScript 1.0

Exemple

Créez un fichier ActionsScript nommé ApplyThis.as et entrez le code suivant :

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

Ensuite, dans un fichier FLA ou un autre fichier ActionScript, ajoutez le code suivant :

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

De même, pour appeler une fonction définie dans une classe dynamique, vous devez utiliser this pour appeler la fonction dans le domaine adéquat :

// 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());
 }
}

Dans le fichier FLA ou un autre fichier ActionScript, ajoutez le code suivant :

var obj:Simple = new Simple();
obj.num = 0;
obj.func = function() {
 return true;
};
obj.callfunc();
// output: true

Le code ci-dessus fonctionne quand vous utilisez this dans la méthode callfunc(). Cependant, vous aurez une erreur de syntaxe si vous avez utilisé la mauvaise version de Simple.as, qui a été commentée dans l’exemple ci-dessus.

Dans l’exemple suivant, le mot-clé this fait référence à l’objet 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);

Dans l’instruction suivante affectée à une image dans un clip, le mot-clé this fait référence au clip actuel.

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

Dans l’instruction suivante dans un gestionnaire MovieClip.onPress, le mot-clé this fait référence au clip actuel :

this.square_mc.onPress = function() {
 startDrag(this);
};
this.square_mc.onRelease = function() {
 stopDrag();
};

Voir également



Le wiki a besoin de votre aide pour classer les pages.
Lorsque vous visitez une page, éditez la en rajoutant des tags ( catégories ) si la page n'en a pas, à l'aide la syntaxe suivante : {{tag>motClef1 motClef2 motClef3}}



veille