key listener et récupération de variable

key listener et récupération de variable - Flash/ActionScript - Programmation

Marsh Posté le 11-07-2008 à 21:19:50    

Bonjour à tous!
 
J'utilise un système de création de mot de passe sous Flash CS3 (AS2) avec notification du résultat (réussite ou erreurs).
Le mot de passe est envoyé vers une page PHP qui traite l'info et l'enregistre dans une base de donnée. Une fois que c'est fait, le même script PHP renvoit une variable avec le message de notification.
Tout fonctionne bien avec mon bouton d'envoi.
 
Mon problème était que si l'utilisateur tape sur la touche "Enter" au lieu de cliquer sur le bouton d'envoi, rien ne se passe au niveau php, ce qui est plutôt normal.  
 
J'ai donc créé un écouteur clavier qui a le même comportement que le bouton d'envoi et le tour est joué, tout est (presque) résolu.
 
Parfait, le mot de passe est bien envoyé et enregistré dans la base, preuve que l'écouteur clavier fonctionne et que l'information est bien traitée par mon script PHP mais...
 
Pour une raison qui m'échappe, le message de notification de réussite ou d'erreur qui s'affiche bien si on a cliqué sur le bouton d'envoi, ne s'affiche par contre pas si on a utilisé la touche "Enter".
 
Voici un bout de code:
 

Code :
  1. sender = new LoadVars();
  2. receiver = new LoadVars();
  3. // Receive
  4. receiver.onLoad = function (psuccess){
  5.       valid.validation_password.text = this.validation_password;
  6.       gotoAndPlay("manage_pass" );
  7. }
  8. function pass_create(){
  9.       sender.newPass = inputPassword.text;
  10.       sender.sendAndLoad ("password_create.php", receiver, "POST" );
  11. };
  12. // Send with button
  13. addPassword.onRelease = function (){
  14.       pass_create();
  15. };
  16. // Send with keyboard  
  17. var listenerKeyboard:Object = new Object();
  18. listenerKeyboard.onKeyDown = function(){
  19.       if(Key.isDown(Key.ENTER)){
  20.             pass_create();
  21.        }
  22. };
  23. Key.addListener(listenerKeyboard);


 
Là je sèche car les actions à effectuer son exactement les mêmes pour le bouton d'envoi ou la touche "Enter" et que le fichier php effectue pourtant bien le travail dans les deux cas !
Le problème ne se situe donc pas au niveau de l'envoyeur ni au niveau du script PHP. Il reste alors plus que le receveur, or il est commun à tous les cas de figure...
j'ai vérifié (grace à un script de deboggage) que ma variable de notification soit bien générée à chaque fois en sortie du script php.
J'ai également vérifié que le boléen "psuccess" est bien "true" avec l'envoi clavier.
 
dès lors:
-la partie php génère une variable dans les deux cas
-la partie receiver récupère l'info dans les deux cas
-la partie sender envoie l'info dans les deux cas
-la partie "psuccess" est bien "true" dans les deux cas
 
Je ne sais donc pas quoi faire...
 
Merci pour toute l'aide que vous pourrez m'apporter!


Message édité par lexgotham le 11-07-2008 à 21:36:33
Reply

Marsh Posté le 11-07-2008 à 21:19:50   

Reply

Marsh Posté le 14-07-2008 à 10:02:58    

t'as essayé de faire un trace sur ton THIS dans le onLoad ?


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 14-07-2008 à 13:04:22    

Merci pour ta réponse zedlefou!
 
Comme je travaille directement sur serveur distant et que je teste dans l'environnement cible, ce n'est pas évident de faire un trace.
Et si je travaille en local, je perds ma connexion avec le script PHP et Mysql.
Si tu penses que ce n'est pas un obstacle pour faie un trace, dis-moi comment faire et j'essaye car là, je ne vois pas.
 
En attendant, pour palier à cela, j'ai vérifié ceci:
J'ai créé un script Php indépendant pour vérifier les variables qui sont envoyées aux portes du swf et dans les deux cas (bouton ou clavier), mon message de notification est bien envoyé au swf. Je suis donc certain à 100% que la variable est bien générée.
Tu penses que, malgré tout, il est possible que le "this", au stade de la réception, puisse faire la distinction entre l'évènement bouton ou clavier survenu avant le script php?
 
Merci pour ton (votre) aide.

Reply

Marsh Posté le 15-07-2008 à 08:28:38    

Oui peut être un probléme de scope.
 
Pour le trace tu as 2 solutions.
- Soit tu mets une adresse absolu pour ta page php
- Soit tu le fais sur le serveur et dans ce cas, tu dois créer un champs texte qui te sers à afficher les messages d'erreurs.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed