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 :

Evenement dans une classe


Sujet :

Flash

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Par défaut Evenement dans une classe
    J'ai une classe dans laquelle je crée un clip et sur lequel j'ajoute l'événement(onRelease) sur lequel je veux lancer une fonction de ma classe..
    Le problème c'est qu'à priori dans le clip au moment du onRelease, il ne connait pas la fonction de ma classe...
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
              mcMain.attachMovie("ClipBtn", "btn", mcMain.getNextHighestDepth());
              mcMain.btn.onRelease =  Delegate.create(this, test);
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function test(){
             trace("Test ok");
    }
    Mais il m'execute la fonction test au moment de la création des clips et non au moment où je clique sur les clips....
    Je ne vois pas comment faire pour que mon clip connaisse ma fonction....
    Une solution?

  2. #2
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    bonjour,

    il faudrai un peu plus d'infos pour pouvoir commencer à reflechir à ton problème, notament le code complet de la classe, par exemple ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mcMain.attachMovie("ClipBtn", "btn", mcMain.getNextHighestDepth());
    se trouve ou, dans une fonction, dans le constructeur ??


  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Par défaut
    Je peux pas remettre tout le code...
    Alors j'essaie de simplifier...
    En gros j'ai une classe avec un fonction qui appelle mcMain.attachMovie("ClipBtn", "btn", mcMain.getNextHighestDepth());

    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
    class navigation{
          var mcMain:MovieClip;
          function navigation(mcMain:MovieClip){
                 this.mcMain=mcMain;
          }
          function CreerMenu(){
                mcMain.attachMovie("ClipBtn", "btn", mcMain.getNextHighestDepth());
                mcMain.btn.onRelease =  function(){
                    test();
               }
          }
          function test(){
             trace("Test ok");
          }
    }
    Ca c'est l'idée, mais au moment du clic sur le bouton btn... il ne reconnait pas la fonction test et n'execute pas mon trace.

  4. #4
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    encore une question : les clips mcMain et ClipBtn sont-ils déjà définis dans l'appli ??

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Par défaut
    mcMain oui, et clipBtn c'est le nom de liaison d'un bouton dans ma bibliothèque...
    Il rentre bien dans le onRelease de mon bouton, mais sur la ligne test()... il ne fait rien, il n'entre pas dans la fonction.
    Si je mets directement le trace à la place de l'appel de test, ça marche... mais j'ai vraiment besoin d'appeler une fonction complexe (qui appelle elle même d'autres fonctions)

  6. #6
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    logique !
    quand flash execute le onRelease, il cherche la fonction test au meme niveau dans l'anime .... faudrait peut etre lui dire ou la trouver, il est perdu le pauvre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var obTmp = this;
    mcMain.btn.onRelease =  function(){
        obTmp.test();
    }

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Par défaut
    Effectivement de cette façon, ça marche...
    Merci

  8. #8
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    p'tain j'ai cherché une heure et c'est aussi simple que ça ??

    j'avais pensé quelque chose comme ça en écrivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    mcMain.btn.onRelease =  function(){
                    this.test();
    }
    mais ça ne marche pas du tout pourtant ???? pourquoi cette gymnatique bizarre variable = this et ensuite variable.test(); et pas this.test directement ???


  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Par défaut
    Parce que le this une fois que tu es dans le onRelease fait référence au clip sur lequel tu viens de cliquer....
    En fait, j'avais essayer le principe de la variable mais en déclarant ma variable comme variable de ma classe... et là cela ne marchait pas non plus, il ne la reconnaissait pas, alors que si je la déclare juste avant, ça marche...
    Enfin c'est quand même bizarre comme principe car du coup j'ai une variable temporaire à chaque fois que je dois définir un événement....

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

Discussions similaires

  1. Ajouter Evenement Onclick dans une classe
    Par Homo_Informaticus dans le forum VB.NET
    Réponses: 1
    Dernier message: 24/03/2011, 14h45
  2. Propagation d'evenement dans une classe
    Par C_le_N dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 21/07/2010, 12h28
  3. [c#/WPF] Ajout d'un evenement CancelEvent dans une classe
    Par DimGigPMS dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 03/04/2009, 10h40
  4. Thread dans une classe ?
    Par Sephi dans le forum Threads & Processus
    Réponses: 7
    Dernier message: 07/03/2004, 19h16
  5. Fonction callback dans une classe
    Par julian_ross dans le forum MFC
    Réponses: 8
    Dernier message: 02/03/2004, 12h42

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