[Résolu] Passage de paramètre sur un événement
Bonjour,
Je viens vous voir parce que j'ai un ptit soucis.
Je vous montre le bout de code qui me pose soucis
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
class Piece
{
...
private var id:String;
...
public function addInteract():Void
{
_root[this.id].onPress = function() {
startDrag(this);
mx.behaviors.DepthControl.bringToFront(this); //Bring to Front Behavior
this.gotoAndStop(2);
};
_root[this.id].onRelease = function() {
stopDrag();
if ( this._x >= 335.4 && this._x <= 335.4 + 59 && this._y >= 297.8 && this._y <= 297.8 + 59)
{
this._x = 335.4;
this._y = 297.8;
}
else
{
this._x = Number(this.id.substr(6,2));
this._y = Number(this.id.substr(6,2));
}
this.gotoAndStop(1);
};
}
} |
Et donc mon soucis, c'est dans le "else", j'aimerais bien pouvoir faire appel à this.id, sauf qu'à cet endroit, this fais référence à _root[this.id] et non plus à mon this initial. Est-ce que qqun saurait comment je pourrais faire pour récupérer l'id de ma Piece à l'intérieur de ma fonction onRelease ?
Merci d'avance
GPZ{^_^} > plus d'explication ...
Citation:
Envoyé par GPZ{^_^}
Bonjour,
Je voulais te demander une tite précision par rapport à ce que tu m'as dis :
Citation:
Et aussi :
Evite d'utiliser les _root
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
class Piece
{
private var target:MovieClip;
function Piece (_target:MovieClip)
{
target=_target;
}
public function addInteract():Void
{
target[this.id]....
}
} |
Je t'explique vite fait, je fais un jeu de dames, j'ai un clip Board avec une classe AS2 associée, qui est mon damier et une classe Piece qui gère mes pions.
J'ai fait comme tu me la conseillé, j'utilise une variable target maintenant. J'ai essayé de construire un pion en lui passant _root dans target, ça fonctionne nickel.
Mais par contre si je lui passe Board, _global.Board ou this, ça ne fonctionne plus, je ne vois plus les pions :s
Pour ajouter mes pions je fais ça :
Code:
1 2 3 4
|
this.target.attachMovie( color ? "red" : "white", this.id , Piece.nbPiece );
this.target[this.id]._x = position.x;
this.target[this.id]._y = position.y; |
Si j'ai bien compris le principe, ça devrais ajouter mes pions à l'intérieur du clip Board. Et donc les coordonnées de mes pions serait dépendantes de mon damier et non plus de la fenêtre.
Aurais-tu une idée de mon erreur ?
Merci à toi