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

Flex Discussion :

Extend et MouseEvent


Sujet :

Flex

  1. #21
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    Désolé, mais je ne comprends pas ce qui ne te vas pas dans les différentes solutions proposées par Jylaxx ou moi.

    Peut être qu'expliquer par une autre personne cela te semblera plus convaincant : ici (désolé c'est en anglais)

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  2. #22
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    bt1.addEventListener(MouseEvent.CLICK, onClick)
    devienne :
    bt1.addEventListener(MouseEvent.CLICK, onClick('click', 'sur un bouton')
    NON ce n'est pas possible car comme je l'ai dit la signature de la fonction passée en paramétre de addEventListener doit être OBLIGATOIREMENT celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function(event : Event):void;
    Est-ce que tu pourrais nous donner un exemple CONCRET des situations que tu évoques ? Peut-être existe-t'il d'autres solutions encore plus élégantes...

    J'ai développé pas mal de code en AS3 et je n'ai jamais eu à régler un problème comme celui que tu exposes.
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  3. #23
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 191
    Points : 35
    Points
    35
    Par défaut
    Peut être qu'expliquer par une autre personne cela te semblera plus convaincant : ici (désolé c'est en anglais)
    Lors de mes recherche, j'ai déja vu la solution de ton lien, et apparament tout le monde s'accordait a dire que ce n'était pas trés propre et pouvait selon certaine circonstance créé un problème avec le garbage collector.

    NON ce n'est pas possible car comme je l'ai dit la signature de la fonction passée en paramétre de addEventListener doit être OBLIGATOIREMENT celle-ci
    Je ne sais pas moi, je pensais qu'avec un language objet, tout été redefinissable donc..., dailleurs :

    Enfin comme Jim et moi l'avons déjà dit la véritable solution au problème que tu poses se trouve dans l'écriture d'une classe dérivée. C'est l'essence même de la programmation objet !!
    Est-ce que tu pourrais nous donner un exemple CONCRET des situations que tu évoques ? Peut-être existe-t'il d'autres solutions encore plus élégantes...
    J'ai développé pas mal de code en AS3 et je n'ai jamais eu à régler un problème comme celui que tu exposes.
    Ouaip, déja il y a le mien (quoique un peu exotique), mais je peux en imaginé des bien plus simple. Je sais pas au pif, un truc de base, effectuer un effet glow sur un bouton a chaque fois qu'il est clické, et cela avec un temps différent selon le bouton

    Avec ce qui me semble logique pour moi, pour 5 bouton ca ferait 5 addeventlistener avec parametre + la fonction glow.

    Avec ce que tu me propose, si l'on en croit ton dernier exemple, ca fera 5 addeventlistener + 5 fonctions, + la fonction glow.

    Alors ok, mon exemple peut ne parraître pas très important effectivement, mais c'est comme même un truc de base. De toute manière a chaque fois que tu va envoyer des parametres différent selon le composant a une seule et même fonction, avec ce que tu me dit il va falloire crée une autant de fonction inutile, qu'il y a de parametre différents.

    C'est un peu comme si je fesais en programmant 5 même fonction avec 1 parametre sur chaque, au lieu d'une seule et même fonction avec 5 parametres différents.

    Je trouve que ca ferait quand même désordre, enfin il me semble ?

  4. #24
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Je ne sais pas moi, je pensais qu'avec un language objet, tout été redefinissable
    C'est un peu nul de dire ça
    Oui c'est redéfinissable mais pas avec ta manière de voir qui n'a rien d'une approche objet mais qui est purement procédurale.
    Toi tu voudrais redéfinir la classe a posteriori ! En effet tu n'es pas à l'origine de la création de l'instance, tu es le récepteur. Comment veux tu que l'objet qui créé une objet MouseEvent puisse créer à la place un MouseEventEx ? Il faudrait que le type de la classe soit paramétré quelque part. Je te raconte pas le bordel que ce serait.

    Ton exemple est typique de la création d'une classe Button dérivée GlowButton dans laquelle tu implémentes le code spécifique. Il serait ridicule de faire ce type de traitement à l'extérieur de la classe !!

    Je pense d'ailleurs que tous les exemples que tu trouveras auront la même réponse. Encore une fois ton approche n'est pas une approche objet.

    Qu'est ce que tu as comme expérience de programmation ?
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  5. #25
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 191
    Points : 35
    Points
    35
    Par défaut
    Oui c'est redéfinissable mais pas avec ta manière de voir qui n'a rien d'une approche objet mais qui est purement procédurale.
    Encore une fois ton approche n'est pas une approche objet.
    Je ne vais pas te mentir, mais ce que tu dis est tout a fait exacte.

    Je pense d'ailleurs que tous les exemples que tu trouveras auront la même réponse.
    Je te fais confiance


    Qu'est ce que tu as comme expérience de programmation ?
    Rien de vraiment professionnel, niveau bac+2 info et un peu de java théorique (niveau objet) en dernière année. + Tout ce que j'apprend par moi même, php, c, w-language, etc. Donc j'avoue, en cours on fesait que des fonction et des procédure ..., je trouvais ca assez pertinant comme méthode ...

    Donc niveau objet, j'ai de l'experience a prendre c'est certain.

    D'ailleurs la je ne suis pas sur de vraiment comprendre ta réponse ...

    Comment veux tu que l'objet qui créé une objet MouseEvent puisse créer à la place un MouseEventEx ?
    Je ne sais pas j'imaginais que l'on pouvais faire hérité MouseEventEx de MouseEvent en 'l'extendant' cad en ajoutant de nouveau parametres, puis ensuite instancié MouseEventEx avec new MouseEventEx().

    Mais toi je crois que tu parle de l'écouteur non ?

    Enfin, la réponse et que ce n'est pas possible, temporairement je ferais du switch,case, puis je regarderai plus tard pour cette class dérivé de button.

    Encore merci,
    néanmoins

  6. #26
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    Citation Envoyé par islogged Voir le message

    Je ne sais pas j'imaginais que l'on pouvais faire hérité MouseEventEx de MouseEvent en 'l'extendant' cad en ajoutant de nouveau parametres, puis ensuite instancié MouseEventEx avec new MouseEventEx().
    Tu peux hériter de MouseEvent mais à l'origine, c'est la classe Button qui dispatche ton event, et la classe Button ne dispatch du MouseEvent... donc tu auras beau changer autant de chose que tu veux dans ton MouseEventEx ce sera toujours un MouseEvent qui sera déclanché car tu utilises la classe Button

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

Discussions similaires

  1. [Java2D]MouseEvent sur un paint Graphics g
    Par tahiti bob dans le forum 2D
    Réponses: 9
    Dernier message: 09/10/2004, 22h15
  2. Delete et failed to extend segment
    Par elitost dans le forum Administration
    Réponses: 11
    Dernier message: 15/09/2004, 10h05
  3. Réponses: 7
    Dernier message: 03/08/2004, 16h33
  4. [debutant] [extends]
    Par Shooter dans le forum Langage
    Réponses: 2
    Dernier message: 10/06/2004, 08h53
  5. Problème lors du EXTEND d'un tableau
    Par banana31 dans le forum Oracle
    Réponses: 14
    Dernier message: 10/02/2004, 10h58

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