URGENT : flash/actionscript Loadvars.send ( "...","_self",...)

URGENT : flash/actionscript Loadvars.send ( "...","_self",...) - Flash/ActionScript - Programmation

Marsh Posté le 13-12-2004 à 13:56:28    

Bonjour, desolé de faire appel a vous, avec un "URGENT", mais la, c est vrai, j ai une demo demain !. Je suis un habitué du HTML, javascript, PHP, Perl , mais pas de flash.
Voila le souci : J ai fait faire un flash, qui doit envoyer des donnees a un script perl.
 
la partie de code concernée en flash est une action sur le boutton "VALIDER" :
 
on (press) {
 objLoadVars = new LoadVars();
 objLoadVars.tabpoint = _root.tab_point;
 objLoadVars.totpoint = _root.tab_point.length;
 objLoadVars.tabquadri = _root.tab_quadri;
 objLoadVars.totquadri = _root.tab_quadri.length;
 objLoadVars.tabrect = _root.tab_rect;
 objLoadVars.totrect = _root.tab_rect.length;
 objLoadVars.mode = "MODIFIER";
 objLoadVars.onglet = "grille";
 objLoadVars.send("truc.pl","_blank","POST" );
}
 
Cette fonction marche tres bien comme ca et je recois mes donnees comme il faut. Mais lorsque je remplace _blank par _self cela ne focntionne plus, le flash se bloque... (ma page HTML est composée de 3 frames)...  
 
j ai cherché sur le net, il semble peut etre que qu'il faille "terminer le flash" avant d'envoyer les donnees a ma page perl ?
 
d'autres semblent dire que cette action doit se faire par une fonction du calque (la je comprends pas ?).  
Quelqu'un de calé en flash pourrait il me depatouiller ?  
 
Merci d avance
 
PS : j ai absoluement besoin que les donnees soient renvoyées dans la meme frame que le flash...

Reply

Marsh Posté le 13-12-2004 à 13:56:28   

Reply

Marsh Posté le 13-12-2004 à 16:02:18    

un petit up ;)

Reply

Marsh Posté le 13-12-2004 à 16:08:56    

objLoadVars.send("truc.pl","nom_de_ta_frame","POST" );  
 
?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 13-12-2004 à 16:15:08    

Vas voir du côté de LoadVars.sendAndLoad() ..
 
send(url[,browser frame[,method]]);
sendAndLoad(url,targetObject[,method]);
 
Comme tu peux le constater, sendAndLoad() ne demande pas de browser target contrairement à send()

Reply

Marsh Posté le 13-12-2004 à 16:18:07    

Salut,
 
Je ne fais pas de Perl mais en PHP je presume que ça doit tourner pareil ...
 
coté flash, essaye d'envoyer tes data comme suit :

Code :
  1. objLoadVars.send("truc.pl", "", "POST" );
  2. gotoAndStop("une frame ou tu attends le resultat avec onData" );


 
dans ton script Perl tu traites l'info et fais l'équivalent d'un "echo" PHP pour renvoyer le resultat
 

Code :
  1. //sur la frame du onData
  2. this.onData = function() {
  3. if (resultat == "ok" ) {
  4. // resultat ok
  5. }else{
  6. // resultat pas ok
  7. }
  8. };


 
Bonne chance pour la suite

Reply

Marsh Posté le 13-12-2004 à 17:01:03    

zbang a écrit :

coté flash, essaye d'envoyer tes data comme suit :

Code :
  1. objLoadVars.send("truc.pl", "", "POST" );
  2. gotoAndStop("une frame ou tu attends le resultat avec onData" );


 
dans ton script Perl tu traites l'info et fais l'équivalent d'un "echo" PHP pour renvoyer le resultat
 

Code :
  1. //sur la frame du onData
  2. this.onData = function() {
  3. if (resultat == "ok" ) {
  4. // resultat ok
  5. }else{
  6. // resultat pas ok
  7. }
  8. };


 
Bonne chance pour la suite


 
:non:  
 
1) L'objet LoadVars n'a pas d'évènement onData() mais onLoad().
2) 'send()', comme son nom l'indique ne charge rien ! il ne fait qu'envoyer ! donc son "résultat == 'ok'", il peut toujours l'attendre !
3) send("..", "", ".." ) remplace de toute façon le contenu de la fenêtre courante par le résultat du script !
 
Bon, je dirais un truc du style :
 
Côté flash:

Code :
  1. this.myVar = new LoadVars();
  2. this.myVar.info1 = "truc";
  3. this.myVar.info1 = "machin";
  4. this.myVar.onLoad = function(success) {
  5.   // traitement des valeurs renvoyées
  6.   if(success) {
  7.     if(this.rc == bla bla bla .. ) {
  8.      ...
  9.     }
  10.   }
  11.   this.gotoAndPlay("je continue l'anim si nécessaire" );
  12. };
  13. this.myVar.sendAndLoad("URL(.pl/.php/.cgi/.n'importequoi)",this.myVar, "GET/POST" );
  14. stop();


 
Côté script:

Code :
  1. <?php
  2. $info1 = $_GET['info1'];
  3. $info2 = $_GET['info2'];
  4. [.. des trucs des machins .. ]
  5. echo "&rc=1";
  6. ?>


 
Et j'ai testé avant de poster ( pour être certain ) .. et ça roule nickel ..


Message édité par Mr Mala le 13-12-2004 à 17:10:50
Reply

Marsh Posté le 13-12-2004 à 17:20:43    

Mr Mala a écrit :

:non:  
 
1) L'objet LoadVars n'a pas d'évènement onData() mais onLoad().
 


 
en effet ... mais mon onData ne fait pas reference à l'objet mais à l'anime elle même exemple :
 
coté flash (sur 2 frames)

Code :
  1. //frame1
  2. onPress = function() {
  3. var1 = "1";
  4. var2 = "2";
  5. var3 = "3";
  6. loadVariables("lescrip.php", "", "POST" );
  7. gotoAndStop(frame2)
  8. };
  9. //frame2
  10. onData = function() {
  11. if( lareponse == "ok" ){
  12. // blabla
  13. }
  14. };


 
coté php

Code :
  1. if( var1 && var2 && var3 ){
  2. echo '&lareponse=ok';
  3. }


 
je m'en sert pour envoyer des mail (la verification des email se fait cote server ... en cas de probleme (ou de reussite) --> retour vers le flash "mail envoyé" "adresse incorrecte"

Reply

Marsh Posté le 13-12-2004 à 17:22:02    

Haaaaaaaaaaa mais là, on parle pas de la même chose !!!
Dans son post original, il utilise clairement l'objet LoadVars, pas la fonction loadVariables !
L'intérêt de l'objet LoadVars, c'est de "limiter" le nombre de variables envoyées au stricte nécessaire !


Message édité par Mr Mala le 13-12-2004 à 17:24:10
Reply

Marsh Posté le 13-12-2004 à 17:23:53    

Mr Mala a écrit :

Haaaaaaaaaaa mais là, on parle pas de la même chose !!!
Dans son post original, il utilise clairement l'objet LoadVars, pas la fonction loadVariables !


[:amandine75011] eh oé? où ça?  :D  

Reply

Marsh Posté le 13-12-2004 à 17:24:45    

zbang a écrit :

[:amandine75011] eh oé? où ça?  :D


 

Citation :


 objLoadVars = new LoadVars();  


 
Perduuuuuu :p
 

Reply

Marsh Posté le 13-12-2004 à 17:24:45   

Reply

Marsh Posté le 13-12-2004 à 17:31:13    

Mr Mala a écrit :

Citation :


 objLoadVars = new LoadVars();  


 
Perduuuuuu :p


 
 [:chimist] il a edité?

Reply

Marsh Posté le 13-12-2004 à 17:34:53    

non .. c'est ça depuis le début ..
et puis tu vois bien que non, il n'y a pas la notification d'édition ! :p

Reply

Marsh Posté le 13-12-2004 à 18:01:24    

Mr Mala a écrit :

non .. c'est ça depuis le début ..
et puis tu vois bien que non, il n'y a pas la notification d'édition ! :p


 
un admin a peut-être masqué la notification? [:amandine75011]
 
ok j'arrête ici ma vauvaise foi gallopante  :D

Reply

Marsh Posté le 13-12-2004 à 18:03:22    

zbang a écrit :

un admin a peut-être masqué la notification? [:amandine75011]
 
ok j'arrête ici ma vauvaise foi gallopante  :D


 
Vaut mieux : ça commence à se voir ! :o     :D

Reply

Marsh Posté le 13-12-2004 à 18:08:45    

Mr Mala a écrit :

Vaut mieux : ça commence à se voir ! :o     :D


 
vraiment? :whistle: ok je sors

Reply

Marsh Posté le 13-12-2004 à 18:13:37    

naaaan allez ça va, reste .. :D  
toute façon, une solution ou l'autre, je pense que le gars est grillé pour demain .. il a rien reposté depuis .. :p
Donc, soit il a trouvé la solution, soit il a tout compris, soit il s'est flingué, soit il change de boulot demain !  :lol:


Message édité par Mr Mala le 13-12-2004 à 18:14:26
Reply

Marsh Posté le 13-12-2004 à 18:49:09    

Mr Mala a écrit :

naaaan allez ça va, reste .. :D


tu peux déjà plus te passer de moi  :sol:  

Mr Mala a écrit :


toute façon, une solution ou l'autre,  


 :jap:  

Mr Mala a écrit :


je pense que le gars est grillé pour demain .. il a rien reposté depuis .. :p
Donc, soit il a trouvé la solution, soit il a tout compris, soit il s'est flingué, soit il change de boulot demain !  :lol:


pauvre créature ...  :D  

Reply

Sujets relatifs:

Leave a Replay

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