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 :

2 évènements click dans un bouton. est ce possible ?


Sujet :

Flex

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 34
    Points : 19
    Points
    19
    Par défaut 2 évènements click dans un bouton. est ce possible ?
    Bonjour,

    Tout est dans le titre est il possible de mettre 2 évènements click dans un même bouton car en effet : quand je clique sur ce bouton, un champ de ma base de donnée se supprime et je voudrais un deuxième élément qui affichera un autre état qui comporterait un Panel : Champ supprimé.

    Comment faire?

    Merci

  2. #2
    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
    Tu veux un bouton 3 états si j'ai bien compris, tu peux utiliser le composant (que tu trouveras facilement sur google, avec ces mots clés: "Checkbox three states flex" ensuite il suffit d'habiller ta checkbox avec du css

    Il y a peut être une solution plus direct avec la classe Button mais la, comme ca, je vois pas

    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

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Merci de ta réponse mais il y a peut être plus simple ? En tout cas merci j'ai déjà une bonne piste Cependant je recherche plus quelque chose du style click2 = " .... " (si seulement cela pouvait être aussi simple )

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Bonjour,

    Un clic est un clic tu ne peux pas avoir deux clics différents pour le même bouton de la souris c'est au niveau de ton traitement sur l'évènement que tu peux faire quelque chose.

    Tu peux par exemple changer ton listener si cela se fait par étape :
    Dans un premier temps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bouton.addEventListener(MouseEvent.CLICK, monTraitement1);
    Puis suite à une suppression par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    bouton.removeListener(MouseEvent.CLICK, monTraitement1);
    bouton.addEventListener(MouseEvent.CLICK, monTraitement2);
    Ou sinon choisir le traitement en fonction du cas par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(condition){
    bouton.addEventListener(MouseEvent.CLICK, monTraitement1);
    } else {
    bouton.addEventListener(MouseEvent.CLICK, monTraitement2);
    }
    Ou sinon tu as le boutons à trois états de Jim_Nastiq. Le contexte n'est pas suffisamment clair pour te donner une réponse précise mais sache que ce sont les solutions les plus simples. Créer un évènement "click2" serait plus compliqué à faire il faudrait rédéfinir le composant Button et je ne vois pas trop comment différencier deux clics droit de souris.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Vous n'avez pas bien compris ce que je voulais dire. En fait, il s'agit toujours du même click. Ce click entraine 2 évènements : un changement d'état et la suppression d'un champ dans la base de données

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Points : 31
    Points
    31
    Par défaut
    salut,
    comme a dit Ellene au début de son post tu ne vas pas mettre deux événements sur ton bouton mais c'est au niveau de la fonction appelée que tu feras tes 2 traitements

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    bouton.addEventListener(MouseEvent.CLICK, monTraitement);
    ...
    ...
    private function monTraitement(ev:Event):void {
    delete(champ); //ta fonction qui supprime ton champ
    monLabel.visible = true; //on l'a d'abord mis en false pour pas qu'il se voit et on l'affiche seulement quand on écrit dedans
    monLabel.text = "champ supprimé";

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Comme l'a dit Elmotardo, tu fais simplement une fonction en AS qui regroupe tes deux évenements et tu déclenche cette action au click...
    Au niveau de l'ActionScript, ca donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private function clickButton():void {
        evenement1();
        evenement2();
    }
    Et au niveau du boutton, ca donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:Button click="clickButton()"/>

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Comme l'a dit Elmotardo, tu fais simplement une fonction en AS qui regroupe tes deux évenements et tu déclenche cette action au click...
    Au niveau de l'ActionScript, ca donne :
    Code :
    private function clickButton():void {
    evenement1();
    evenement2();
    }
    Et au niveau du boutton, ca donne:
    Code :
    <mx:Button click="clickButton()"/>
    Attention à ne pas confondre évènement et traitement.
    Un évènement c'est un clic sur un bouton par exemple.
    Pour rappel :
    http://www.adobe.com/fr/devnet/flex/...ndling_events/
    http://www.flex-tutorial.fr/2008/09/...ctionscript-3/

    Ce que tu appelles evenement1 et evenement2 ne sont que des fonctions pour faire des traitements.
    Pour créer des évènements perso (et je ne suis pas très sûr que c'est ce que tu voudrais faire) : http://livedocs.adobe.com/flex/3/htm...eevents_3.html

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup C'est moi qui avait mal compris

    Et Merci pour la différence traitement et événement !

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    J'ai malheureusement écrit evenement1() tout comme j'aurais pu écrire function() ou bien dilaladidoum() ... Je n'ai pas vraiment réfléchis sur la fonction appelée lors de mon exemple, je m'en excuse

    Il est vrai qu'il ne faut pas mélanger évenement et fonction. Merci pour ta remarque ellene

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Points : 417
    Points
    417
    Par défaut
    dilaladidoum() c'est un concept à percer, ça change des toto et autres foobar...
    ok je sors...

Discussions similaires

  1. [TinyMCE] Mettre à jour le contenu après événement "click" dans l'éditeur
    Par maitaddi dans le forum Bibliothèques & Frameworks
    Réponses: 6
    Dernier message: 10/10/2013, 17h10
  2. Réponses: 7
    Dernier message: 27/06/2011, 15h56
  3. Réponses: 5
    Dernier message: 13/02/2008, 10h15
  4. Déclencher évènement Click d'un bouton d'un Useform par programme VBA.
    Par botakelymg dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/12/2007, 08h58
  5. [VB5]Sélectionner du texte dans un label, est-ce possible?
    Par Silivrion dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 14/04/2006, 00h19

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