OVH Cloud OVH Cloud

[FlashMX2004] détecter le clic de la roulette de la souris

6 réponses
Avatar
seb
Bonsoir,

Est-ce que l'on peut détecter le clic centre dans flash mx 2004 ?

J'arrive à détecter la roulette avec Mouse.onMouseWheel pour faire du
zoom+/zoom- mais pas le clic sur la roulette.

merci,
seb

6 réponses

Avatar
E-stampida
Si tu tapes ce code:
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta:Number) {
trace(delta);
};
mouseListener.onMouseDown = function() {
trace("Push");
};mouseListener.onMouseUp = function() {
trace("Release");
};
Mouse.addListener(mouseListener);

Tu verras que si tu cliques sur la molette, flash ne reçoit aucune valeur.
Tu en tireras tes conclusions.
Si ça peut te consoler, c'est pareil en flash 8.
Peut-être avec Flex ? Mais ça, Eka en saura plus que moi sur le sujet.

--
e-S-tampida

http://development.bbri.be/elearning2 (beta version V2.3.1)
--
A tous ceux qui ne lisent pas la documentation (livre ou F1)
http://development.bbri.be/ictp/flash/rtdfm.jpg
--



"seb" wrote in message
news:dva175$eq6$
Bonsoir,

Est-ce que l'on peut détecter le clic centre dans flash mx 2004 ?

J'arrive à détecter la roulette avec Mouse.onMouseWheel pour faire du
zoom+/zoom- mais pas le clic sur la roulette.

merci,
seb



Avatar
seb
"E-stampida" a écrit dans le message de news:
dvb4kc$qno$
[...]
Tu verras que si tu cliques sur la molette, flash ne reçoit aucune valeur.
Tu en tireras tes conclusions.



Ca correspond en gros à mes tests, dommage.

seb
Avatar
ekameleon
Hello :)

Normalement on peut... mais c'est pas gagné sur toutes les machines car
cela va demander beaucoup de ressource ... ;)

Pour cela il faut utiliser un ASNative(800,2) qui permet de récupérer
l'événement du click souris....

Exemple sur Flash-France :

http://www.flash-france.com/actionscript.php?action=ViewProto&Protoid9

on voit bien qu'il faut utiliser la fonction native : (ASnative(800,2))(4)

Maintenant c'est à tester dans flash :

onEnterFrame = function () {
var getMouseState = ASnative(800,2) ;
var isMiddle = getMouseState(4) ; // 4 = bouton du milieu
trace( "isMiddle ? : " + isMiddle) ;
}

Cela fonctionne bien.. le problème c'est qu'il faut lancer une boucle
infinie pour tester cet événement et contrairement au bouton gauche de
la souris il n'y a as d'événement natif à première vue... comme le
onMouseDown et onMouseUp qui permet de notifier le ASnative(800,2)(1)
(bouton gauche de la souris)

EKA+ :)


E-stampida a écrit :
Si tu tapes ce code:
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta:Number) {
trace(delta);
};
mouseListener.onMouseDown = function() {
trace("Push");
};mouseListener.onMouseUp = function() {
trace("Release");
};
Mouse.addListener(mouseListener);

Tu verras que si tu cliques sur la molette, flash ne reçoit aucune valeur.
Tu en tireras tes conclusions.
Si ça peut te consoler, c'est pareil en flash 8.
Peut-être avec Flex ? Mais ça, Eka en saura plus que moi sur le sujet.



Avatar
E-stampida
ASnative ? Mais où vas-tu chercher des trucs pareils ?
T'as des liens pour avoir plus d'infos sur les possibilités de ce truc ?
Est-ce possible qu'il y ait eu un post (très) tordu de Zwetan à ce sujet sur
buuurn il y a déjà assez longtemps ? Il me semble qu'il y faisait des manip
proches du binaire...
Merci.
:)
--
e-S-tampida

http://development.bbri.be/elearning2 (beta version V2.3.1)
--
A tous ceux qui ne lisent pas la documentation (livre ou F1)
http://development.bbri.be/ictp/flash/rtdfm.jpg
--



"ekameleon" wrote in message
news:dvbl4f$l6j$
Hello :)

Normalement on peut... mais c'est pas gagné sur toutes les machines car
cela va demander beaucoup de ressource ... ;)

Pour cela il faut utiliser un ASNative(800,2) qui permet de récupérer
l'événement du click souris....

Exemple sur Flash-France :

http://www.flash-france.com/actionscript.php?action=ViewProto&Protoid9

on voit bien qu'il faut utiliser la fonction native : (ASnative(800,2))(4)

Maintenant c'est à tester dans flash :

onEnterFrame = function () {
var getMouseState = ASnative(800,2) ;
var isMiddle = getMouseState(4) ; // 4 = bouton du milieu
trace( "isMiddle ? : " + isMiddle) ;
}

Cela fonctionne bien.. le problème c'est qu'il faut lancer une boucle
infinie pour tester cet événement et contrairement au bouton gauche de la
souris il n'y a as d'événement natif à première vue... comme le
onMouseDown et onMouseUp qui permet de notifier le ASnative(800,2)(1)
(bouton gauche de la souris)

EKA+ :)


E-stampida a écrit :
Si tu tapes ce code:
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta:Number) {
trace(delta);
};
mouseListener.onMouseDown = function() {
trace("Push");
};mouseListener.onMouseUp = function() {
trace("Release");
};
Mouse.addListener(mouseListener);

Tu verras que si tu cliques sur la molette, flash ne reçoit aucune
valeur. Tu en tireras tes conclusions.
Si ça peut te consoler, c'est pareil en flash 8.
Peut-être avec Flex ? Mais ça, Eka en saura plus que moi sur le sujet.





Avatar
ekameleon
E-stampida a écrit :
ASnative ? Mais où vas-tu chercher des trucs pareils ?
T'as des liens pour avoir plus d'infos sur les possibilités de ce truc ?
Est-ce possible qu'il y ait eu un post (très) tordu de Zwetan à ce sujet sur
buuurn il y a déjà assez longtemps ? Il me semble qu'il y faisait des manip
proches du binaire...
Merci.
:)



Hello :)

Tout ce que tu utilises dans Flash (méthodes etc..) possède un code
natif (à condition que tu utilises une méthode ou un objet natif bien
entendu...)
La première fois où j'en ai entendu parler c'était sur le wiki de
Flashcoders
(http://chattyfig.figleaf.com/flashcoders-wiki/index.php?ASNative) mais
depuis le site est mort...

Heureusement on retrouve quelques bons liens à ce sujet comme sur OSFlash :
http://osflash.org/flashcoders/undocumented/asnative

Donc si tu veux tu peux faire :

_global.cacherSouris = ASnative(5, 1) ; // cacher la souris
cacherSouris() ;

tu peux recréer tes propres noms de méthode... pas très utile mais bon :)
On peut donc parfois trouver dans les ASNative des éléments non
documentés...

EKA+ :)
Avatar
E-stampida
merci pour l'info.
;)

--
e-S-tampida

http://development.bbri.be/elearning2 (beta version V2.3.1)
--
A tous ceux qui ne lisent pas la documentation (livre ou F1)
http://development.bbri.be/ictp/flash/rtdfm.jpg
--



"ekameleon" wrote in message
news:dvbsd4$1vr$
E-stampida a écrit :
ASnative ? Mais où vas-tu chercher des trucs pareils ?
T'as des liens pour avoir plus d'infos sur les possibilités de ce truc ?
Est-ce possible qu'il y ait eu un post (très) tordu de Zwetan à ce sujet
sur buuurn il y a déjà assez longtemps ? Il me semble qu'il y faisait des
manip proches du binaire...
Merci.
:)



Hello :)

Tout ce que tu utilises dans Flash (méthodes etc..) possède un code natif
(à condition que tu utilises une méthode ou un objet natif bien
entendu...)
La première fois où j'en ai entendu parler c'était sur le wiki de
Flashcoders
(http://chattyfig.figleaf.com/flashcoders-wiki/index.php?ASNative) mais
depuis le site est mort...

Heureusement on retrouve quelques bons liens à ce sujet comme sur OSFlash
:
http://osflash.org/flashcoders/undocumented/asnative

Donc si tu veux tu peux faire :

_global.cacherSouris = ASnative(5, 1) ; // cacher la souris
cacherSouris() ;

tu peux recréer tes propres noms de méthode... pas très utile mais bon :)
On peut donc parfois trouver dans les ASNative des éléments non
documentés...

EKA+ :)