|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 6 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 6 ![]() |
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? |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 6 ![]() |
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)} 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. |
|
|
00
|
|
|
#4 |
![]() ![]() Romain PERRUCHONArchitecte - Expert Technique Inscription : novembre 2004 Messages : 2 664 ![]() |
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 ^^
__________________
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 6 ![]() |
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 |
|
|
00
|
|
|
#6 |
![]() ![]() Romain PERRUCHONArchitecte - Expert Technique Inscription : novembre 2004 Messages : 2 664 ![]() |
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 ?
__________________
|
|
00
|
Copyright © 2000-2012 - www.developpez.com