Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Ubuntu 18.04 LTS
Ubuntu-fr propose des clés USB de Ubuntu et toutes ses « saveurs » ainsi qu'un magnifique t-shirt pour cette toute nouvelle version d'Ubuntu !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/03/2018, à 03:14

temps

[résolu] Fonction antirebond

Bonjour,
J'ai écris un petit code qui génère des vidéos interactives.
Dans ses modes d'utilisations, j'ai prévu que l'on puisse jouer les sons aussi bien au clavier qu'au clique.
La partie clavier ne me pose pas de problème (cela est certainement lié aux débuts de l'informatique ou nous programmions la fonction antirebond des touches mais j'ai oublié comment je faisais).
Je rencontre un problème aux cliques, normalement chaque clique devrait jouer une seule fois le son, mais je dois avoir une erreur et je n'arrive pas à voir ou, est-ce que quelqu'un a une idée d'où cela vient ?
En détail, la gestion des événements "clique" est dans un fichier que j'ai nommé "adresse.js" qui se trouve ici :
https://www.letime.net/j/x.7z
Dans l'exemple donné, il y a 4 claviers, donc en premier le code sélectionne le son en fonction du clavier. Pour que le même son puisse être jouer plusieurs fois rapidement, le même son est généré 8 fois. Je voudrais qu'à chaque appel de touche se soit une copie différente qui soir jouer. Mais au lieu de cela, à chaque clique, j'ai plusieurs copie qui se jouent en même temps, comme si le clique n'avait pas de fonction antirebond,
En exemple le clique de souris appel :

document.getElementById('b1v'+ouioui).addEventListener("click", function() {
multitouchea();

});

et j'ai un problème, alors que la touche clavier appel

  switch (event.key) {
    	case "a":
	multitouchea();

   	break;

et je n'ai pas de problème.

Pourquoi ? si quelqu'un sait, je suis preneur.
Cordialement

Dernière modification par temps (Le 25/03/2018, à 09:48)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#2 Le 25/03/2018, à 09:54

temps

Re : [résolu] Fonction antirebond

Bonjour,
J'ai écris le code sans passer de paramètre, j'ai donc regardé en premier les différent paramètre possible à addEventListener (ce qui se place après la virgule après la fonction). Je pense qu'il y a plusieurs solutions envisageable.
Ensuite, j'ai regardé, s'il était possible de passer la fonction directement, sans passer par une fonction neutre comme je le fais (je pensais que c'était plus propre), et bien le standard est justement de ne pas passer par une fonction neutre, et la répétition de la fonction provenait de là.

En code je mettais :

document.getElementById('b9v'+ouioui).addEventListener("click", function() {
multitoucheo();

});

et je vais corriger en mettant :

document.getElementById('b9v'+ouioui).addEventListener("click", multitoucheo);

Cordialement

Dernière modification par temps (Le 25/03/2018, à 09:56)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne

#3 Le 25/03/2018, à 19:37

kevlar

Re : [résolu] Fonction antirebond

Bonsoir. Je ne reconnais pas le langage utilisé, mais en C, il est crucial qu'une fonction "Callback" (suite à un événement comme un clic-souris) renvoie une valeur booléenne TRUE ou FALSE ;
TRUE = traitement terminé, plus rien à faire (ce qui permet en général d'éviter les rebonds).
FALSE = traitement non réalisé, le programme doit continuer à diffuser l'événement.
Je parle bien du retour de la fonction Callback associée à l'événement qui est lui-même géré comme une interruption. Je pense qu'il faut réellement organiser le programme en fonction des directives système, car dans le cas contraire, on aura sans doute des "surprises".
En espérant avoir aidé.

Dernière modification par kevlar (Le 25/03/2018, à 19:40)

Hors ligne

#4 Le 25/03/2018, à 23:00

temps

Re : [résolu] Fonction antirebond

Bonjour,
Merci pour la réponse.
En ce moment, je suis dans une période mozilla (sous forme d'addon firefox), c'est donc un langage mal typé du javascript).

Mais dès que j'ai fini de créer cette nouvelle technique de communication (un outil très puissant pour échanger des sentiments) sous forme de vidéo interactives, je retourne à l'origine qui a sa base est un nouveau format audio sous linux.

J'ai plusieurs versions de vidéos interactives dédiées à linux en attente, une en shell bash, une en C avec SDL, et une en c++ avec qt, mais comme j'ai largement dépasser le temps que je m'étais accordé pour ces versions web, il est probable que je vais devoir reprendre pas mal de choses car les librairies ont évoluées. Je dois présenter les dernières évolutions (générations de l'audio et de la vidéo) mon propre format dédié à linux qui permet l'interactivité indispensable à notre entendement, sous le nom SequenBaul sur le site Debian Facile, mais seul et souvent incompris j’avance pas vite. En exemple j'ai créé un prototype de carte audio linux, (une qualité audio jamais égalé,  à entendre pour savoir que ça peut exister), un prototype qui n'a pas supporter les transport lors des démos, et que je n'ai jamais eu le temps de reconstruire.
Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination

Hors ligne