IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

Passage de paramètre sur un événement


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Par défaut [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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Par défaut
    Bonjour a tous,

    Peut etre qu'en procédant de cette façon, ca resoudrai ton probleme ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            public function addInteract():Void
    	{
    		var id:String = this.id;//on localise la variable.
    		_root[id].onPress = function() {
    		...
    	}
    De meme pour les autre this.id
    Dans cette exemple, on localise (" changement de porté ") en créant un variable. Mais on aurait aussi put ajouter une propriété ( id ) au clip ....

    au passage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    			{
    				var subId:Number = Number(id.substr(6,2));
    				//peut etre : if (subId==NaN) subId=0;
    				this._x = subId;
    				this._y = subId;
    			}
    Et aussi :
    Evite d'utiliser les _root
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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]....
    	}
    }
    Sinon il est bien ton code

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Par défaut
    Magnifique ça fonctionne nickel =)
    Merci l'ami

  4. #4
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Par défaut 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 :
    Et aussi :
    Evite d'utiliser les _root
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Par défaut
    Mais par contre si je lui passe Board, _global.Board ou this, ça ne fonctionne plus, je ne vois plus les pions :s
    Fais un trace de Board ou _global.Board ou this avant de le passé en parametre a ta class. A tout les coup c'est un object....

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Par défaut
    Ouais ça me met function pour Board et object pour _global.Board et this :S

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Passage de paramètre sur connexion SQL
    Par PrinceCorwin dans le forum Excel
    Réponses: 0
    Dernier message: 11/06/2014, 10h15
  2. Réponses: 5
    Dernier message: 14/09/2012, 21h20
  3. Réponses: 26
    Dernier message: 20/01/2010, 10h38
  4. Réponses: 4
    Dernier message: 31/08/2007, 00h54
  5. onchange sur un SELECT : passage de paramètre
    Par NikoBe dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 31/10/2006, 11h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo