Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2010, 09h59   #1
yan
Rédacteur/Modérateur
 
Avatar de yan
 
Homme yan verdavaine
Ingénieur expert
Inscription : mars 2004
Messages : 9 643
Détails du profil
Informations personnelles :
Nom : Homme yan verdavaine
Âge : 30
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 : 9 643
Points : 12 258
Points : 12 258
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 :
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?
__________________
[Critique] L'art du game design : 100 objectifs pour mieux concevoir vos jeux
QExtend
Moi
Android : TVA Calculator & My Tip

-----------------------------------------------------------------------------
Intéressé pour participer à la rubrique Qt ou Android? n'hésitez pas à m'envoyer un MP
yan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 14h28   #2
Membre habitué
 
Maxime Faye
Développeur Web
Inscription : novembre 2006
Messages : 123
Détails du profil
Informations personnelles :
Nom : Maxime Faye
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2006
Messages : 123
Points : 129
Points : 129
Envoyer un message via MSN à Maskime Envoyer un message via Skype™ à Maskime
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...)
__________________
Si je vous poste un bout de code pour vous aider, prenez bien en compte que je n'ai pas testé ce que je vous poste et que je vous donne les grandes lignes.
Donc ne me dites pas : "Ca marche pas ton truc, y a une erreur..."
Maskime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 14h40   #3
yan
Rédacteur/Modérateur
 
Avatar de yan
 
Homme yan verdavaine
Ingénieur expert
Inscription : mars 2004
Messages : 9 643
Détails du profil
Informations personnelles :
Nom : Homme yan verdavaine
Âge : 30
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 : 9 643
Points : 12 258
Points : 12 258
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 ?
__________________
[Critique] L'art du game design : 100 objectifs pour mieux concevoir vos jeux
QExtend
Moi
Android : TVA Calculator & My Tip

-----------------------------------------------------------------------------
Intéressé pour participer à la rubrique Qt ou Android? n'hésitez pas à m'envoyer un MP
yan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 20h42   #4
yan
Rédacteur/Modérateur
 
Avatar de yan
 
Homme yan verdavaine
Ingénieur expert
Inscription : mars 2004
Messages : 9 643
Détails du profil
Informations personnelles :
Nom : Homme yan verdavaine
Âge : 30
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 : 9 643
Points : 12 258
Points : 12 258
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?
__________________
[Critique] L'art du game design : 100 objectifs pour mieux concevoir vos jeux
QExtend
Moi
Android : TVA Calculator & My Tip

-----------------------------------------------------------------------------
Intéressé pour participer à la rubrique Qt ou Android? n'hésitez pas à m'envoyer un MP
yan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 21h50   #5
Membre habitué
 
Développeur multimédia
Inscription : juin 2009
Messages : 128
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : juin 2009
Messages : 128
Points : 148
Points : 148
C'est exactement ça.
Code AS3 :
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.
fazermokeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 21h59   #6
yan
Rédacteur/Modérateur
 
Avatar de yan
 
Homme yan verdavaine
Ingénieur expert
Inscription : mars 2004
Messages : 9 643
Détails du profil
Informations personnelles :
Nom : Homme yan verdavaine
Âge : 30
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 : 9 643
Points : 12 258
Points : 12 258
Citation:
Envoyé par fazermokeur Voir le message
C'est exactement ça.
Code AS3 :
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
__________________
[Critique] L'art du game design : 100 objectifs pour mieux concevoir vos jeux
QExtend
Moi
Android : TVA Calculator & My Tip

-----------------------------------------------------------------------------
Intéressé pour participer à la rubrique Qt ou Android? n'hésitez pas à m'envoyer un MP
yan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h40.


 
 
 
 
Partenaires

Hébergement Web