START DRAG ET STOP DRAG FLASH AS3

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 - 29 août 2008 à 19:38
simirore Messages postés 3 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 31 décembre 2011 - 21 nov. 2010 à 21:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47805-start-drag-et-stop-drag-flash-as3

simirore Messages postés 3 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 31 décembre 2011
21 nov. 2010 à 21:01
J'ai une solution qui marche en remplaçant :
pop.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
par
stage.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);

Mais ça ne me plait qu'à moitié, car cette instruction, dans un swf appelé par un prloader, déclenche une erreur #1009 (objet inconnu).
simirore Messages postés 3 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 31 décembre 2011
21 nov. 2010 à 20:05
Je travaille un peu la dessus en ce moment et il y a un petit problème avec stopDrag() (qu'on retouve ici):
Si on fait bouger l'image avec la souris et qu'on la relâche en dehors de la scène, en fait, rien n'est relâché et on se retrouve avec l'image qui bouge au bout d'une souris "relâchée"...

Quelqu'un a-t-il une astuce pour l'empêcher ?
cs_mouahaha Messages postés 209 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 6 avril 2009 1
19 sept. 2008 à 11:58
Merci Peg' ^^
Bertrand c'est vrai que tes sources font très "pubs" !
Tu pourrais mettre le script au lieu de tes sites dans la partie "source"...
Si quelqu'un aime bien ce que tu fais il y a déjà un bouton "site perso" pour ça.
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
29 août 2008 à 19:44
Au temps pour moi : il faut virer la ligne :

evt.currentTarget.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDown);

ou alors ajouter ça à la fonction mouseReleased :

evt.currentTarget.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);

Les deux sont faisable ...

Peg'
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
29 août 2008 à 19:38
Allez, comme je suis en pleins dedans, je te refais ton code "en propre" :

//import des classes necessaires
import flash.events.MouseEvent;

// fonction de la souris sur le clip pop
pop.mousechildren = false; //évite de modifier la souris avecn les objets contenus dans pop
pop.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown)

//évènements déclenché lors de l'appuis sur la souris
function mouseDown(evt:MouseEvent):void {
evt.currentTarget.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
evt.currentTarget.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoved);
evt.currentTarget.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
evt.currentTarget.startDrag();
}
//évènements déclenché lors du relachement de la souris, après l'appuie
function mouseReleased(evt:MouseEvent):void {
evt.currentTarget.removeEventListener(MouseEvent.MOUSE_UP, mouseReleased);
evt.currentTarget.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoved);
evt.currentTarget.stopDrag();
}
//évènements déclenché une fois le bouton maintenu et mouvement de la souris
function mouseMoved(evt:MouseEvent):void {
evt.updateAfterEvent();
}
// et c'est tout

Là c'est du vrai AS3 et de la vrai POO ..

Peg'

Ps : ça fait carrément PUB tes deux sources, en fait.
Rejoignez-nous