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 09/08/2007, 12h43   #1
Invité de passage
 
Inscription : juillet 2006
Messages : 6
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : juillet 2006
Messages : 6
Points : 0
Points : 0
Par défaut Problème de Drag'n'Drop dans un SWF embarqué

Bonjour tout le monde,

Je développe une application avec FlexBuilder2 sur Windows.

J'ai un swf créé avec FlexBuilder2 qui utilise du Drag'n'Drop.
Si je lance ce swf seul, le Drag'n'Drop marche très bien.

Ensuite, j'ai mon application flex principale, qui charge le précedent swf. Mais alors là, le Drag'n'Drop déconne ; Je peux drag un objet, mais ensuite il reste coller au curseur si je lache la click gauche, alors qu'il devrait retourner à sa place. Pour vraiment lacher l'objet, je dois faire sortir le curseur de la fenêtre de l'application, ou lui faire perdre le focus en faisant click droit, click gauche par exemple.

J'ai pensé que ça pouvait venir d'un conflit dans la gestion des événements entre le swf embarqué et l'application principale, mais je ne vois vraiment pas comment régler ce problème.

Quelqu'un aurait déjà rencontré ce problème? Ou aurait la moindre idée d'ou cela pourrait venir? Merci

Toute aide serait vraiment la bienvenue
A bientôt
Jay00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2007, 10h49   #2
Invité de passage
 
Inscription : juillet 2006
Messages : 6
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : juillet 2006
Messages : 6
Points : 0
Points : 0
Il semblerait que l'évenement "mouse up" ne soit pas détecté pendant la phase de drag, et du coup le drag ne se termine jamais.

Pourtant, lorsque je ne suis pas en drag, le "mouse up" est bien détecté.

Serait-ce possible que le drag, étant initié dans le swf intérieur, attend un "mouse up" dans ce swf, mais que quand je lache le click ce soit en fait l'application principale qui intercepte cet événement?
Jay00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2007, 18h10   #3
Invité de passage
 
Inscription : juillet 2006
Messages : 6
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : juillet 2006
Messages : 6
Points : 0
Points : 0
En utilisant stage.addEventListener(MouseEvent.MOUSE_UP, mouseUp), l'événement "mouse up" est bien lancé durant la phase de drag, 3x d'ailleurs, ce que je trouve bizarre.

Quoiqu'il en soit, maintenant que j'ai mon événement "mouse up", comment puis-je faire pour arréter le drag? (i.e que l'objet se détache de la souris, et retourne voir son conteneur parent)

Je n'ai rien trouvé d'utile dans l'interface du DragManager. Juste un stopDrag() dans l'objet que je déplace (l'objet déplacé dérive de Box).

Le code suivant n'arrête pas le drag:

private function mouseUp(event:MouseEvent):void
{
if (DragManager.isDragging)
{
stopDrag();
}
}

Des idées sur comment arrêter le drag dans ces conditions?
Et également, des idées sur pourquoi l'événement "mouse up" est lancé 3x?

Merci.
Jay00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2007, 15h45   #4
Rédacteur
 
Avatar de loka
 
Homme Romain PERRUCHON
Architecte - Expert Technique
Inscription : novembre 2004
Messages : 2 664
Détails du profil
Informations personnelles :
Nom : Homme Romain PERRUCHON
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Architecte - Expert Technique
Secteur : Service public

Informations forums :
Inscription : novembre 2004
Messages : 2 664
Points : 3 607
Points : 3 607
Bonjour,

Normalement le stopDrag() se fait sur un élément (l'élément qui est "draggé"), essayez :
monElement.stopDrag()

Si ça ne marche pas, c'est qu'il y a effectivement un autre problème à resoudre avant ^^
__________________
SFML - API Multimédia C++ multiplateforme !
loka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 13h03   #5
Invité de passage
 
Inscription : juillet 2006
Messages : 6
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : juillet 2006
Messages : 6
Points : 0
Points : 0
Bonjour,

Dans l'exemple ci-dessus, la méthode fait partie de mon élément, donc ça revient bien à faire monElement.stopDrag().

En résumé, il y a toujours un problème.

J'ai testé avec flex3, et le résultat est le même
Jay00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 14h26   #6
Rédacteur
 
Avatar de loka
 
Homme Romain PERRUCHON
Architecte - Expert Technique
Inscription : novembre 2004
Messages : 2 664
Détails du profil
Informations personnelles :
Nom : Homme Romain PERRUCHON
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Architecte - Expert Technique
Secteur : Service public

Informations forums :
Inscription : novembre 2004
Messages : 2 664
Points : 3 607
Points : 3 607
Avec simplement les éléments que tu donnes, je vois pas ce qui ne va pas.

Peux-tu me donner un code minimale sur lequel le problème existe que je puisse tester ?
__________________
SFML - API Multimédia C++ multiplateforme !
loka est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h51.


 
 
 
 
Partenaires

Hébergement Web