Molette de la souris en as3

aerial9 Messages postés 25 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 23 décembre 2011 - 27 oct. 2011 à 00:41
aerial9 Messages postés 25 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 23 décembre 2011 - 8 nov. 2011 à 18:04
Bonjour à tous, Je vous expose mon problème :
Pour un jeux flash, je voudrais pouvoir utiliser la molette de la souris.
Si possible, pourriez-vous me dire comment utiliser également le clic de la molette ? Vous savez, pas quand on monte ou descend avec la molette mais quand on appui dessus ?
Je voudrais le faire par écouteur d’événement comme suit:

stage.addEventListener(MouseEvent.MOUSE_WHEEL,nomfonction);

function nomfonction(me:MouseEvent):void{

}

Voilà, je bloque dessus. Donc si vous pouviez m'aider. Merci
Cordialement,

Aerial9

18 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
27 oct. 2011 à 10:31
Bonjour,

L'utilisation de la molette de la souris se fait effectivement comme cela, mais il faut que le surseur de la souris soit sur une partie "non vide" de l'élément ciblé.
Remplis ton fond avec un carré de couleur, tu verras que l’évènement sera distribué correctement.

Cependant, dans la doc de flash, il est précisé :
Distribué lorsque la molette d’une souris est actionnée sur une occurrence de InteractiveObject. Si la cible est un champ de texte, le comportement par défaut consiste à faire défiler le texte. Disponible uniquement sur les systèmes d’exploitation Microsoft Windows.

Il s'agit donc d'un évènement à utiliser avec parcimonie du fait de sa non compatibilité avec les autres OS.

Ensuite, l'utilisation du bouton du milieu de la souris ne semble pas être géré par flash.
Il semble donc impossible à utiliser.

Peg'
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
27 oct. 2011 à 11:57
Bonjour,
normalement tu peux utiliser les propriétes sur ton écouteur

MIDDLE_CLICK, MIDDLE_MOUSE_DOWN et MIDDLE_MOUSE_UP

Cordialement
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
27 oct. 2011 à 12:04
Non, Aerolyte ...
Ces 3 MouseEvents ne sont dispo que sous AIR et pas en flash.

Peg'
0
aerial9 Messages postés 25 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 23 décembre 2011
28 oct. 2011 à 00:10
Merci pour les infos ! Mais c'est plutôt une mauvaise nouvelle, dans mon jeux de plateforme, je voulais que le personnage puisse en plus de tire avec le curseur de la souris, taper et parer. Mais une main sur les touches directionnelles et l'autre sur le click gauche de la souris ne laisse que peu d'option pour une bonne maniabilité.
Cependant, tu me dis peg que certains Os ne gère pas la molette par as3, de mémoire xp sp2 et mac os x 10 même inférieur en sont capables. Si il est question de windos 98, bah… franchement … je zap. C'est pas comme un site php qui doit être vu jusque en Papouasie (j'ai rien contre la Papouasie) , c'est d'abord par expression artistique. De tête Peg', tu saurais me dire quels os ne suis pas cette fonction ?
A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aerial9 Messages postés 25 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 23 décembre 2011
28 oct. 2011 à 00:15
Alors là je comprends rien de rien ! Ce code que j'ai glané à cette adresse :

http://www.youtube.com/watch?v=kQULBhMRr4M

ne génère pas d'erreur de sortie, mais ne donne aucun résultat. cependant il marche sur le tuto. Et j'ai mis un clip en arrière plan pour afficher une zone à flash, comme tu me l'as dis peg.

var deltaVar:int;
var zoomAmount:int = 20;
addEventListener(MouseEvent.MOUSE_WHEEL,fonctionmolette);

function fonctionmolette(event:MouseEvent):void{
deltaVar = event.delta;
canon.width += zoomAmount;
}

Une idée ? Peg' ?
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
28 oct. 2011 à 11:12
C'est normal.
ce code ecoute l'evenement scroll de la molette et pas l'evenement click de la molette
0
aerial9 Messages postés 25 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 23 décembre 2011
28 oct. 2011 à 22:22
nan mais ça n'écoute rien du tout. ni le click de le roll bas ou haut. il ne se passe rien et il n'y a pas d'erreur de compilation. je clic sur la scène dans laquelle il y a un arrière plan pour que flash détecte l'écouteur d'événement et ensuite je fais rouler en haut ou en bas le scroll de la sourris. Rien ne se passe. J'ai mis un trace, et il sort même pas. Il est ou le souci ??


Please help
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
29 oct. 2011 à 00:40
ben oui, car ton bout de code est faux

addEventListener(MouseEvent.MOUSE_WHEEL,fonctionmolette); 

function fonctionmolette(event:MouseEvent):void{ 
canon.width = event.delta*5;
} 
0
aerial9 Messages postés 25 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 23 décembre 2011
29 oct. 2011 à 11:17
J'ai copié collé ce code et le résultat est le même. Rien ne se passe.
Je n'ai pas d'erreur de compilation et le code est le même au caractère près.
C'est pas non plus ma souris, elle fais très bien le scroll ailleurs.

Aerrolyte, Peg, mais d'ou ca peut venir ?
0
aerial9 Messages postés 25 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 23 décembre 2011
30 oct. 2011 à 20:55
Serieux, ce code ne fonctionne tout simplement pas. C'est quoi le code pour écouter la molette alors ? Ou sinon je peux peut-être me servir du clic droit, si c'est possible de l'écouter.

Help ! Please !
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
31 oct. 2011 à 09:34
Bonjour, sérieusement tu ne dois pas savoir coder correctement , donc le plus simple est de se réferrer a la doc officielle:

http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/events/MouseEvent.htmllien/url
0
aerial9 Messages postés 25 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 23 décembre 2011
3 nov. 2011 à 20:21
Bonjours, pas savoir coder 3 lignes ? quand-même! J'ai copié collé ton code, en plus. J'ai déjà été sur cette adresse avant même de venir demander de l'aide sur CodesSources. Comment est-ce que je peux envoyer un zip qui contient mon fichier flash et le swf sur CodesSources ? Comme ça vous me direz ce qui cloche. Pour un code aussi court, il y a forcément un truc qui m'échappe, mais quoi.

Pourriez vous me dire comment en transmet zip sur ce site ?

Merci et à +
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
3 nov. 2011 à 23:43
stage.addEventListener(MouseEvent.MOUSE_WHEEL,mscroll);
private function mscroll(event:MouseEvent):void{
trace(event.delta);
}
0
aerial9 Messages postés 25 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 23 décembre 2011
5 nov. 2011 à 15:49
Merci, mais je ne connais pas du tout l'utilisation des private function.
Il me dit :
1013 : L'attribut private ne peut être utilisé que dans des définitions de propriétés de classes.
J'ai fouillé sur le net et lors de leurs utilisations, les private function semble être plus ou moins "définies" au préalable. Comment est-ce que ça fonctionne ?
Je vais continuer à fouiller. Merci Aerolyte.
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
5 nov. 2011 à 18:09
Les membres (public/private) ne sont utilisables que dans la définistion d'une classe custom.

Peg'
0
aerial9 Messages postés 25 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 23 décembre 2011
5 nov. 2011 à 23:14
une classe custom ? Et terme de code comment on définit une class comme ça ? ça s'appel dans flash comme avec une variable qu'on définit au préalable avant son usage ? Ou c'est un peu plus complexe ?
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
5 nov. 2011 à 23:23
Bonne lecture : http://blog.cenizal.com/?p=13

Peg'
0
aerial9 Messages postés 25 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 23 décembre 2011
8 nov. 2011 à 18:04
J'ai lu et je ne suis pas sûr de tout comprendre, je m'y remettrai plus tard. J'ai trouvé une autre solution à mon problème. Mais merci beaucoup pour votre aide les gars.
A bientôt.

AERIAL
0