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 :

Transmission des évènements [Flex3]


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut Transmission des évènements
    Bonjour,
    Je cherche à faire un drag & drop de Sprite dans une scène.

    En bon débutant, j'ai trouvé les fonctions startDrag et stopDrag() couplé au event MouseEvent.MOUSE_DOWN et MouseEvent.MOUSE_UP.
    Ca marche plutôt pas mal. Mais par toujours.
    Si lors du drag je sort de la zone autorisé ou que je relance le bouton sur un éléments situé devants le Sprite, le MouseEvent.MOUSE_UP n'est pas reçu et le drag ne s'arrête pas

    En faisant le parrallèle avec d'autre framework, je me suis dit que je vais mettre l'écoute du mouseup sur le parent du parent du parent,....
    Et ca marche nikel .
    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
    35
    package
    {
    	import flash.display.Sprite;
    	import flash.events.MouseEvent;
    	import flash.geom.Point;
     
    	class mySprite  extends Sprite
    	{
     
    		public function mySprite()
    		{
    			/* Sprite draw*/
    			...
     
    			addEventListener(MouseEvent.MOUSE_MOVE,mousedown);
     
     
    		}
     
    		private function mousedown(ev:MouseEvent):void
    		{	
    			startDrag(true);
    			var p:Object = this;
    			while(p.parent != null) p = p.parent;
    			p.addEventListener(MouseEvent.MOUSE_UP,mouseup);
    		}
    		private function mousedown(ev:MouseEvent):void
    		{	
    			stopDrag();
    			var p:Object = this;
    			while(p.parent != null) p = p.parent;
    			p.removeEventListener(MouseEvent.MOUSE_UP,mouseup);
    		}
    	}
    }
    Mais bon comme je suis archi débutant(6j de dev) je ne sais pas si ce que j'ai fait est la bonne méthode ou s'il y as mieux.

    Qu'en pensez vous?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Tech Lead
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Tech Lead
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par défaut
    Hello,

    J'ai jamais joué avec le drag n drop, mais en tout cas est ce que tu as essayé de mettre ton listener sur l'application plutôt que de faire toute la hierarchie de tes enfants ?

    Normalement tu dois avoir accès à l'application à partir de tes objets avec this.application (ou quelque chose dans le genre...)

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Maskime Voir le message
    Hello,

    J'ai jamais joué avec le drag n drop, mais en tout cas est ce que tu as essayé de mettre ton listener sur l'application plutôt que de faire toute la hierarchie de tes enfants ?

    Normalement tu dois avoir accès à l'application à partir de tes objets avec this.application (ou quelque chose dans le genre...)
    y as this.stage.
    Ca semble marcher.
    Es ce que cela correspond ?

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Si je comprend bien la doc, stage est l'aire principale de dessin(donc le parent de plus haut niveau) et c'est lui qui dispatch les principaux event vers le DisplayObject cible.

    C'est bien cela?

  5. #5
    Membre éprouvé
    Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Juin 2009
    Messages : 130
    Par défaut
    C'est exactement ça.
    Code AS3 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    monObjet.addEventListener(MouseEvent.MOUSE_DOWN, startDragFunction);
    stage.addEventListener(MouseEvent.MOUSE_UP, stopDragFunction);
    Pour être sur que le UP est bien pris en compte où que tu te trouves.

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par fazermokeur Voir le message
    C'est exactement ça.
    Code AS3 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    monObjet.addEventListener(MouseEvent.MOUSE_DOWN, startDragFunction);
    stage.addEventListener(MouseEvent.MOUSE_UP, stopDragFunction);
    Pour être sur que le UP est bien pris en compte où que tu te trouves.
    Ok merci pour la confirmation

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

Discussions similaires

  1. Transmission des événements sous windows
    Par dervish dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/12/2008, 13h03
  2. [JTable] gestion des événements
    Par soulhouf dans le forum Composants
    Réponses: 4
    Dernier message: 19/08/2005, 13h21
  3. Gestion des évènements lors d'un clique sur une image.
    Par yoghisan dans le forum Débuter
    Réponses: 7
    Dernier message: 23/06/2005, 19h04
  4. Créer des événements
    Par thebeb dans le forum MFC
    Réponses: 8
    Dernier message: 04/02/2005, 16h45

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