IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH MX2004] onKeyDown


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Isses
    Profil pro
    Inscrit en
    Février 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 200
    Par défaut [FLASH MX2004] onKeyDown
    bon voilà

    j'ai un champs de teste de saisie et je veux que dès que l'utilisateur tape un chiffre entre 1 et 9 (compris), un menu apparaisse pour envoyer la saisie dans un bon de commande.

    j'ai donc limiter la saise aux chiffres seulement et limité la saisie à un seul caractère.

    j'ai mis un ecouteur pour detecter la pression d'une touche seulement j'ai besoin que quand on presse une touche cela valide le champs de saisie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var keyListener:Object = new Object(); 
    keyListener.onKeyDown = function() { 
       if((saisie.text != 0) && (saisie.text != "")){
       quantite = saisie.text;
       } 
    }; 
    Key.addListener(keyListener);
    le problème c'est qu'il faut que je presse "entrer" pour valider le champs de saisie.

  2. #2
    Membre confirmé Avatar de Isses
    Profil pro
    Inscrit en
    Février 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 200
    Par défaut
    j'ai essayé autre chose:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    saisie.tabIndex = 1;
     
    saisie.onSetFocus = function() {		// Si le champs de texte est selectionné
    	var select = 1;
    };
    saisie.onKillFocus = function() {		// Si le champs de texte est désselectionné
    	var select = 2;
    };
    var keyListener:Object = new Object();
    keyListener.onKeyDown = function() {	// Si on presse une touche
    	var touche = Key.getAscii();
    	trace (select);
    	trace(touche);
    	if (select == 1) {					// Si le champs de texte est selectionné
    		for (i=49; i<=57; i++) {		// teste tous les chiffres (entre 1 et 9)
    			if (touche == i) {			// si c'est un chiffre qui a été tapé
    				fr = 1;
    				_root.qte = touche-48;
    			}
    		}
    	}
    };
    Key.addListener(keyListener);
    tout marche mais il me renvoie select comme undefined donc je n'arrive pas à définir si il tape dans le champs de texte. une idée???,

  3. #3
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Re,

    tu utilises les composants Macromedia ou pas ?
    Car je me demande si le TextInput.change ne serait pas finalement plus adapté.

    Pour ceux qui ne comprennent pas ma réponse, elle fait suite à ça : http://www.developpez.net/forums/viewtopic.php?t=471931

  4. #4
    Membre confirmé Avatar de Isses
    Profil pro
    Inscrit en
    Février 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 200
    Par défaut
    j'ai trouver l'erreur, il fallait rajouter this. dans ma fonction onSetFocus() et onKillFocus();:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    saisie.tabIndex = 1;
     
    saisie.onSetFocus = function() {		// Si le champs de texte est selectionné
    	this.select = true;
    };
    saisie.onKillFocus = function() {		// Si le champs de texte est désselectionné
    	this.select = false;
    };
     
    var keyListener:Object = new Object();
    keyListener.onKeyDown = function() {	// Si on presse une touche
    	var touche = Key.getAscii();
    	trace (saisie.select);
    	trace(touche);
    	if (saisie.select == true) {					// Si le champs de texte est selectionné
     
    		for (i=49; i<=57; i++) {		// teste tous les chiffres (entre 1 et 9)
    			if (touche == i) {			// si c'est un chiffre qui a été tapé
    				fr = 1;
    				_root.qte = touche-48;
    			}
    		}
    	}
    };
    Key.addListener(keyListener);
    maintenant je cherche à ce que l'on voit ce que l'on tape dans saisie.text car si on tape effectivement un 5 par exemple et que le menu apparait si tout de suite on retape un chiffre (sans avoir deselectionné le champs de texte) on voit toujours le 5 alors que c'est l'autre chiffre qui part dans la commande

  5. #5
    Membre confirmé Avatar de Isses
    Profil pro
    Inscrit en
    Février 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 200
    Par défaut
    voilà, maintenant touyt ce passe comme voulu

    je vous fais profiter des fonctions avec les commentaires

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    saisie.tabIndex = 1;
    // Si le champs de texte est selectionné
    saisie.onSetFocus = function() {
    	this.select = true;
    };
    // Si le champs de texte est désselectionné
    saisie.onKillFocus = function() {
    	this.select = false;
    };
    var keyListener:Object = new Object();
    // Si on presse une touche
    keyListener.onKeyDown = function() {
    	var touche = Key.getAscii();
    	// Si le champs de texte est selectionné
    	if (saisie.select == true) {
    		// teste tous les chiffres (entre 1 et 9)
    		for (i=49; i<=57; i++) {
    			// si c'est un chiffre qui a été tapé
    			if (touche == i) {
    				// selectionne le premier caractere du champs de texte selectionné
    				Selection.setSelection(0, 1);
    				// remplace le texte du champs de texte par ce qui a été tapé
    				saisie.replaceSel = fromCharCode(i);
    				fr = 1;
    				_root.qte = touche-48;
    				selection.setSelection(0, 1);
    			}
    		}
    	}
    };
    Key.addListener(keyListener);
    mais il est vrai que la fonction TextInput.change aurait été moins fastidieuse freegreg mais je crois qu'il faut valider la saisie pour que ça marche (donc appuyer sur entrée) mais j'en suis pas sûr

    merci pour m'avoir fait remarqué ce defaut sur le site en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH MX2004] Clip qui ne s'arrête pas
    Par romain starck dans le forum ActionScript 1 & ActionScript 2
    Réponses: 8
    Dernier message: 10/05/2006, 19h43
  2. Réponses: 5
    Dernier message: 14/01/2006, 20h30
  3. Communication C++ <--> Flash MX ou Flash MX2004
    Par loupiloup dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/01/2004, 20h58
  4. [FLASH MX2004] Hierarchisation des actions
    Par bolo dans le forum Flash
    Réponses: 9
    Dernier message: 06/11/2003, 16h02
  5. [FLASH MX2004] Personnaliser les scrollbars
    Par stephane eyskens dans le forum Flash
    Réponses: 10
    Dernier message: 09/10/2003, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo