begin process at 2012 02 09 09:27:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Divers

 > 

Débutant(e)

 > 

Keylistener et Key.isToggled


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Keylistener et Key.isToggled

lundi 2 octobre 2006 à 11:02:08 | Keylistener et Key.isToggled

manuken

Bonjour,
J'utilise keylistener pour assigner une action à chaque touche appuyée au clavier par l'utilisateur.
En gros, la lettre "t" apparait, si appui sur la bonne touche va à l'image 2 sinon va à l'image 3

Pour les lettres minuscules tout fonctionne bien mais comment faire la même chose avec les chiffres et les lettres accentuées ?.
Pour le M (majuscule), dès que j'utilise la touche SHIFT il considère que c'est faux alors que je n'est pas encore appuyé sur la touche t.

voici la code utilisé :

keyListener = new Object();
keyListener.onKeyDown = function()
if (Key.getCode() == 84) { // 84 = T
         gotoAndStop(2);
       Key.removeListener(keyListener);

} else {  // si pas t
 
 gotoAndStop(3);
  Key.removeListener(keyListener);
 }

};
Key.addListener(keyListener);



HELP ME please !!!!
Manuken

lundi 2 octobre 2006 à 11:24:14 | Re : Keylistener et Key.isToggled

shubenka

Salut
Et bien tu fait pareil sauf que tu change 84 par le code correspondant a la touche voulu.
si tu a pas envie de regarder dans la doc
keyListener.onKeyDown = function()
trace(Key.getCode());
}
et tu appuie sur les touche accentué pour avoir le code des touches.



[ Lien ]
lundi 2 octobre 2006 à 14:24:04 | Re : Keylistener et Key.isToggled

manuken

Merci de ta réponse,
Bé oui ca m'affiche bien le code de la touche
mais si je veux faire un 2
il me faut taper sur SHIFT ( donc code 16) puis 2 (code 50)

mon code réagit donc à la première frappe sur SHIFT et fait un goto n°d'image

Vois-tu le truc qui cloche dans le code ?

j'ai bien essayé ca

if (Key.getCode()== 16 && Key.getCode() == 50) {

mais ca marche pas.

merci.
Manuken

lundi 2 octobre 2006 à 15:53:04 | Re : Keylistener et Key.isToggled

shubenka

ah ui
qu'elle idée d'utilisé shift aussi. tu ne peut pas t'en passé ?
sinon shift tu le gére uniquement quand il est relaché [ Lien ]

[ Lien ]
mardi 3 octobre 2006 à 09:16:08 | Re : Keylistener et Key.isToggled

manuken

Hé hé salut...
Si c'était simple je n'aurais pas posé la question....
Merci de ta réponse.

J'ai essayé le OnkeyUp
Ce que j'en conclue c'est que part cette méthode il n'y a pas moyen  de lui faire afficher un 2 en faisant SHIFT + (2é~)
Par contre un 2 via le pavé numérique pas de problème ! c'est le code 98...

Le but de mon jeu est d'initier le joueur au maniement des touches du clavier donc de savoir s'il doit appuyer sur SHIFT ou pas pour faire une lettre en majuscules ou le caractère de dessous...

Je suis étonnné que Flash ne le premette pas. Ou alors vu que je suis débutant, je ne connais pas la méthode.

La touche é a pour code 50 et 233 en ASCII
la touche SHIFT le code 16 et 0 en ASCII
la touche 2 du pavé numérique le code 98 et 50 en ASCII

Y-a-t-il pas moyen de bidouiller un truc pour qu'il retourne l'appui des touches SHIFT + 2  avec le code du 2 au pavé numérique ? Histoire de le blouser ?

Merci
Manuken


 

jeudi 5 octobre 2006 à 15:25:12 | Re : Keylistener et Key.isToggled

adv

Salut,
pour faire la différence entre les majuscules et minuscules, tu peux garder en mémoire l'état des touches MAJ et CAPSLOCK.

Dans onKeyDown "MAJ = true" et rien ne change pour CAPSLOCK
Dans onKeyUp "MAJ = false" et "CAPSLOCK = not CAPSLOCK" (il s'inverse)

Après, tu fais un test "if(MAJ or CAPSLOCK)" et voilà.
J'ai vite testé et la source (qui n'a pas lieu d'être déposée comme source) se trouve ici:
http://www.odv.ch/flash/listen_key.zip

J'espère que ça t'aidera, bonne chance.
adv

vendredi 6 octobre 2006 à 10:57:36 | Re : Keylistener et Key.isToggled

manuken

adv,
 tout d'abord un grand merci pour ton aide et cet exemple que j'ai étudié à fond !!!

on va dire que j'ai compris le principe mais je n'arrive pas à l'additionner avec ce que je veux faire par la suite....

au lieu d'afficher tes champs texte dynamique dans le onenterframe = fonction()

j'ai mis ca :

onEnterFrame = function ()
{

 if (etat_maj = true && Key.getCode() == 84){ // T
  
  Key.removeListener(keyListener);
  gotoAndStop(59);                            // l'image où il y a marqué BIEN
 }
 if (etat_maj = false && Key.getCode() == 84){ // t
  Key.removeListener(keyListener);
  gotoAndStop(60);                           // l'image où il y a marqué FAUX
  
 }
};

Je suis dans la séquence où la bonne réponse est le "t" minucule....

Avec ce code ca marche une fois sur 2 (ce qui est bizarre...) et en plus il ne se passe rien si le joueur frappe une autre touche

Une fois sur l'image BIEN ou FAUX, j'ai un bouton qui envoie le joueur sur une autre séquence avec une autre lettre à taper....

Mon niveau de débutant est à son max avec ce code.... en grois c'est un peu chaud et je n'avance pas....
Merci de ton aide .... mais encore un ptit coup de main sera pas de refus.....

;) manuken

vendredi 6 octobre 2006 à 11:19:15 | Re : Keylistener et Key.isToggled

shubenka

onEnterFrame = function ()
{
 if (etat_maj == true && Key.getCode() == 84){ // T
  
  Key.removeListener(keyListener);
  gotoAndStop(59);                            // l'image où il y a marqué BIEN
 }
 if (etat_maj == false && Key.getCode() == 84){ // t
  Key.removeListener(keyListener);
  gotoAndStop(60);                           // l'image où il y a marqué FAUX
  
 }
};


[ Lien ]
vendredi 6 octobre 2006 à 11:27:58 | Re : Keylistener et Key.isToggled

adv

Avec la correction proposée par shubenka ça devrait fonctionner.


Petite note de programmation:
Mais il faut arrêter avec ces "etat_maj==true".

etat_maj est un boolean, il peut donc prendre la valeur false ou true.

A quoi bon faire un test entre 2 boolean qui renvoit un resultat boolean.
Ca revient à faire if(true == true) ce qui est complétement inutile.

tu peux simplement utiliser le boolean, sans faire de test.
Ce qui donne:
"if (etat_maj && Key.getCode() == 84)"


Voilà, on attend de tes nouvelles, à plus.
adv




vendredi 6 octobre 2006 à 14:09:11 | Re : Keylistener et Key.isToggled

manuken


Merci les gars...
Bien vu le cours de programmation, compris ... ! ;)

Pour ce qui est des nouvelles Pfffff c'est pas la joie....
De nature obstiné, je suis en train de craquer LOL
Je me vois obligé de vous envoyer tout le code car il doit y avoir une erreur que je ne trouve pas....
Ca devient assez dur, là.....grrrrrrr
(Je bosses sur  Flash MX version 6)

var keyListener = new Object();

keyListener.onKeyDown = function ()
{
    var _l1 = Key.getCode();
 

    switch (_l1)
    {
        case 16:
        {
            etat_maj = true;
            break;
        }
    } // End of switch
    if (_l1 >= 65 && _l1 <= 90)
    {
        if (etat_maj || etat_caps)
        {
            txt_cla.text = txt_cla.text + chr(_l1);
        }
        else
        {
            txt_cla.text = txt_cla.text + chr(_l1 + 32);
        } // end if
    }
    else if (_l1 == 32)
    {
        txt_cla.text = txt_cla.text + chr(_l1);
    } // end if
};
keyListener.onKeyUp = function ()
{
    var _l1 = Key.getCode();
    switch (_l1)
    {
        case 16:
        {
            etat_maj = false;
            break;
        }
        case 20:
        {
            etat_caps = !etat_caps;
            break;
        }
 }// End of switch
};
Key.addListener(keyListener);
onEnterFrame = function ()
{
   // bonne réponse t
 if (etat_maj && Key.getCode() == 84){ // T
  trace ("faux");
  gotoAndStop(59);
  Key.removeListener(keyListener);
  
 }
 if (Key.getCode() == 84){ // t
 trace ("ok");
  Key.removeListener(keyListener);
  gotoAndStop(60);
  
 }
};


Merci


1 2

Cette discussion est classée dans : utilise, key, touche, keylistener, istoggled


Répondre à ce message

Sujets en rapport avec ce message

Changer d'image selon la touche [ par MaxusViardis ] Salut,Voila j'ai créé un clip appellé "perso_face" sur lequel j'ai placé ce code:onClipEvent (enterFrame) { if (Key.isDown(Key.UP)) { this._y -= 1 les enterFrame [ par flashfanatics173 ] onClipEvent (enterFrame) { if (Key.isDown(Key.SPACE)){ gotoAndStop(3); }}j'aimerais savoir ce qu'ai le code pour que au lieu que ca soit la touche comment faire un else { sans if(...) [ par stefbuet ] j'ai trois image avec 3 stop, je veux que quand l'on apuis sur la touche gauche, l'image 2 apparai, et sur la touche droite , l'image 3 apparais, et changer d'image avec une touche. [ par bondika ] Bonjour tout le monde, j'aimerai savoir comment rajouter dans un script, le fait que lorsque l'on appui sur une touche le personnage d'un jeu change d onKeyDown [ par nuclearprout ] Bonsoir. J'ai un petit soucis indissoluble... J'ai un clavier visuel constitué de clips dont les noms commencent tous par key + le nom de la touche supprimer un Object [ par astrolabbcracker ] bonjour et merci de lire ce message :je crée un objet pour qu'une fonction se lance quand on clique sur entrer mais à l'étape suivante, je voudrais su touche du clavier [ par vegetalain ] Salut, je ne trouve pas l'opposé de :if(Key.isDown(Key.RIGHT)) { blablabla...et ".isUp" n'a pas l'air d'exister !C pour faire un perso qui se déplace, Appuis unique sur une touche du clavier [ par nicoool18 ] Bonjour !!voila je suis en train de développer un jeu, et j'ai besoin pour plusieurs code d'uriliser le clavier.mais le probleme c'est que quand j'uti Flash AS [ par gozila ] Alors je vous presente mon probleme.Je veux deplacer mon perso et qu'il se remette de face a chaque fois que l'on relache les fleches car la sur mon c if (Key.isDown(Key.UP))gotoMyPostAndHelpMe [ par Henji ] J'ai 3 clips utilisant les mêmes fonctions type... if (Key.isDown(Key.UP))         gotoAndPlay(3);if (Key.isDown(Key.LEFT))         gotoAndPlay(13);Le


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,678 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales