2010-04-03 8 views
0

donc j'essaye de faire glisser autour de quelques images dans une toile.faire glisser des composants dans flex

J'ajoute EventListeners aux composants et appelant startDrag() et stopDrag() pour les ramasser et d'autres choses:

component.addEventListener (MouseEvent.MOUSE_DOWN, component.startDrag)

Le problème est que c'est en sélectionnant l'image à son emplacement (0,0) et non là où je l'ai initialement cliqué. Il y a donc un "saut" soudain lorsque je clique sur l'image. Ce n'est pas lisse. J'ai remarqué que startDrag() a deux paramètres par défaut, l'un d'entre eux est lockCenter et il est par défaut à false. Peut-être que je l'ai mis égal à vrai en quelque sorte? (Je ne sais pas comment passer des arguments à mon deuxième paramètre dans addeventlistener)

Une autre question: si je veux ajouter plus de conditions, comme faire une nouvelle fonction qui utilise component.startDrag(), comment puis-je passer le composant à cette fonction tout en lui ajoutant un écouteur d'événement en même temps? par exemple: Je veux faire:

component.addEventListener (MouseEvent.MOUSE_DOWN, some_other_function);

où some_other_function utilise component.startDrag();

Merci!

Répondre

1

Vous devriez avoir appeler votre écouteur d'événement un gestionnaire d'événements au lieu de glisser directement commencer - cette façon, vous pouvez transmettre des arguments:

ie:

component.addEventListener(MouseEvent.MOUSE_DOWN, dragStartHandler); 

public function dragStartHandler(event:MouseEvent):void{ 
    component.startDrag(true); 
} 
Questions connexes