Capture de saisie au clavier

flashtrap Messages postés 7 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 18 juin 2007 - 15 juin 2007 à 19:40
flashtrap Messages postés 7 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 18 juin 2007 - 18 juin 2007 à 19:29
Bonjour.

Je suis débutant en Action Script et en programmation en général. J'ai une mission à réaliser et je suis désemparé. J'ai cherché sur le web, et je n'ai pas trouvé la solution à mon besoin. Je ne sais pas comment m'y prendre pour programmer.

Je dois réaliser une application de décompte de votes ultra-intuitive avec saisie directe au clavier. En clair, l'utilisateur face au dépouillement des votes sur papiers, saisi sur le pavé numérique de son clavier, le numéro correspondant au papier voté.

Par exemple :

Tartampion ---> 1
Dupont ----> 2
Tartampion ---> 1
Tartampion ---> 1
Tartampion ---> 1
Dupont ----> 2

Chaque fois que l'utilisateur saisi un même nombre, celui ci s'additionne pour donner au resultat final du dépouillement, le nombre qui a été le plus saisi.

Par exemple :

Tartampion ---> 4 Elu !

Pourriez vous je vous prie, m'aider à créer cette application ?

8 réponses

flashtrap Messages postés 7 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 18 juin 2007
15 juin 2007 à 21:29
Pour compléter mon besoin, je viens de dtrouver un bout de code Action Script 3 pour capturer des saisies au clavier et l'afficher sur le panneau d'avertissements.

Le code est le suivant :

function reportKeyDown(event:KeyboardEvent):void // je crée ma fonction de saisie au clavier
{
    trace("Key Pressed: " + String.fromCharCode(event.charCode) +         " (character code: " + event.charCode + ")"); // la fonction affiche la touche saisie au clavier ainsi que son code ASCII associé
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); // Mise sur la scène de l'écoute de la saisie au clavier.

Il me manque désormais de faire afficher le résultat sur la scène et non dans la fenêtre d'avertissement ainsi que de faire l'opération d'addition des numéros saisis au clavier pour ensuite en afficher résultat du numéro le plus saisi au clavier.
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
15 juin 2007 à 21:30
Hello,

voici une possibilité :

noms=new Array ('Tartampion','Dupont')
totalVotes=new Array(0,0)

var myListener:Object = newObject();
myListener.onKeyDown = function(){
var chiffre= Key.getCode()-96

if(chiffre>-1 && chiffre<10){
totalVotes[chiffre]++
}
}

Key.addListener(myListener);

fonction resultats(){
 for (var i:Number=0;i<totalVotes.length;i++){
trace(noms[i]+"-->"+totalVotes[i]+" Elu(s) !")
}
}

A chaque fois que tu pousses une touche entre 0 et 9, un vote est ajouté au nom correspondant au chiffre
Ensuite, tu appel la fonction résultats pour afficher le nombre de votes par élu...

Ce code st limité car on a au maximum 10 (de 0 à 9) possibilités de noms

@+
0
flashtrap Messages postés 7 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 18 juin 2007
15 juin 2007 à 21:46
Merci pour votre réponse.

Je vais tester ca.
0
flashtrap Messages postés 7 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 18 juin 2007
15 juin 2007 à 21:56
J'ai ce message d'erreur quand je compile mon code :

ReferenceError: Error #1065: La variable newObject n'est pas définie.
    at Sansnom_fla::MainTimeline/Sansnom_fla::frame1()

J'ai mis le code sur le frame 1 de mon unique calque dans mon scénario (timeline).

Je suis en mode action script 2.
0

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

Posez votre question
flashtrap Messages postés 7 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 18 juin 2007
15 juin 2007 à 22:01
Ah oui ! Je précise aussi que je suis sous Flash CS 3.
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
16 juin 2007 à 07:59
Ah wi...
il manquait un espace entre new et Object...
Comme c'est Flash9 / AS3 j'ai ajouté la déclaration de toutes les variables, mais attention, je ne connais pas encorel'AS3 et le code est sans garantie de fonctionnement...

var noms:Array=new Array ('Tartampion','Dupont')
var totalVotes:Array=new Array(0,0)

var myListener:Object = new Object();
myListener.onKeyDown = function(){
    var chiffre:Number=  Key.getCode()-96
    if(chiffre>-1 && chiffre<10){
        totalVotes[chiffre]++
    }
}

Key.addListener(myListener);

fonction resultats(){
    for (var i:Number=0;i<totalVotes.length;i++){
        trace(noms[i]+"-->"+totalVotes[i]+" Elu(s) !")
    }
}

@+
0
flashtrap Messages postés 7 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 18 juin 2007
18 juin 2007 à 18:00
Re bonjour.

Je vais vous paraître bien stupide, mais étant vraiment débutant en programmation, pourriez vous m'expliquer ligne par ligne la logique ou la signification de votre code.

Et comment fais-je pour appeler la fonction "resultats" ?

Sinon quand j'appuie sur une touche du clavier, rien ne s'affiche.

J'ai trouvé ce code en AS 3.0 qui permet d'afficher la touche saisie dans la fenêtre de résultat de Flash :

function reportKeyDown(event:KeyboardEvent):void
{
    trace("Key Pressed: " + String.fromCharCode(event.charCode) +         " (character code: " + event.charCode + ")");
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);

Je l'ai testé et il marche.

Mais je voudrais que les touches saisies s'affichent dans un cadre dessiné sur la scène et non pas dans la fenêtre de résultat.

Désolé pour mon amateurisme, mais j'avoue ne pas avoir un don pour la logique et la programmation.
0
flashtrap Messages postés 7 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 18 juin 2007
18 juin 2007 à 19:29
J'ai :

 Accès à la propriété non définie Key.

Comme message d'erreur, quand je teste le code.
0
Rejoignez-nous