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}}



