sendAndLoad // Boucle For + onRelease(valeur i)

sendAndLoad // Boucle For + onRelease(valeur i) - Flash/ActionScript - Programmation

Marsh Posté le 27-08-2009 à 12:17:32    

Bonjour!
 
j'ai besoin de votre aide pour trouver la bonne méthode à utiliser pour recharger mes variables j'explique le plan, j'ai fichier SWF dans le quel j ai :
 
dans la scène principale:  
 
-calque 1 frame 1 = 7 champ text dynamique
avec pour nom de variable acl1 , acl2, acl3...
 
-calque 2 frame 1 = 7 calques type bouton
-AS des boutons :

Code :
  1. on (release) {
  2. getURL(this.variable1, "_blank" );
  3. }


 
-calque 3 frame 1 = image de fond  
-AS

Code :
  1. loadVariablesNum("script.php", 0, POST);
  2. stop();


 
Toute les variables des boutons/calques_boutons sont chargées au chargement du SWF par le loadVariablesNum...
 
Bon en gros j ai un movie clip qui permet de ce loger :
 
AS de connexion:

Code :
  1. loginButton.onRelease = function()
  2. {
  3. var a_envoi:LoadVars = new LoadVars();
  4. var a_recevoir:LoadVars = new LoadVars();
  5. a_recevoir.onLoad = function (succes:Boolean)
  6. {
  7.  if(succes)
  8.  {
  9.   if (this.valeur == "bad" )
  10.   {
  11.    gotoAndStop(3);
  12.    txtlogin.text = this.valeur1;
  13.   }
  14.   else if (this.valeur == "good" )
  15.   {
  16.    gotoAndStop(2);
  17.    txtlogin.text = this.valeur1;
  18.   }
  19.  }
  20. };
  21. a_envoi.login = vlogin.text;
  22. a_envoi.motdepasse = vmotdepasse.text;
  23. a_envoi.sendAndLoad("script.php", a_recevoir, "POST" );
  24. };


ici pas de problème je me log bien, je reçoit et envoie mes variable sans problème.
 
j'aimerais que lorsque je me connecte, les lien et titre des bouton soit recharger par ce de ma table utilisateur
mon fichier php serait donc comme cela :

Code :
  1. <?php
  2. include('connect.php');
  3. if (session user ouverte)
  4. {
  5.  $retour = mysql_query('SELECT * FROM menu_ceam');
  6.  while ($donnees = mysql_fetch_array($retour))
  7. {
  8.  echo "&".$donnees['var']."=".$donnees['titre']."&";
  9.  echo "&".$donnees['varlien']."=".$donnees['lien']."&";
  10. }
  11. else //session vide
  12. {
  13.  $retour = mysql_query('SELECT * FROM menu_ceam');
  14.  while ($donnees = mysql_fetch_array($retour))
  15. {
  16.  echo "&".$donnees['var']."=".$donnees['titre']."&";
  17.  echo "&".$donnees['varlientemp']."=".$donnees['lientemp']."&"; // page qui dit "connecter vous merci"
  18. }
  19. }
  20. ?>
  21. <?php
  22. //script de connexion
  23. ?>


 
Le problème c'est que les titres sont charger au début par le loadVariablesNum... et ne sont pas mis à jour au moment ou je me connecte :sweat:
 
comment faire pour actualiser mes variables titre/lien???
 
Merci par avance pour votre aide je suis pas sur d'avoir bien expliqué je doit dire que c'est dur d'expliquer ça donc désolé si c'est pas net si il vous faut des informations de suis la.
 
((flash / AS2) sur ftp/mysql distant pas de phpmyadmin....local)


Message édité par ails le 01-09-2009 à 12:28:29

---------------
Ritouné mwen lé ritounin
Reply

Marsh Posté le 27-08-2009 à 12:17:32   

Reply

Marsh Posté le 27-08-2009 à 12:21:08    

A Ouai, tu te met même à l'action script 1...
Vu que tu commences en AS, pourquoi n'adopterais-tu pas AS3 directement ?


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 27-08-2009 à 12:36:33    

Ouah!? AS3? je ne sais même pas quel sont les difference entre les different AS  
Et bien je doit dire que je suis sur le projet de création de site/outils web pour mon travail et mon objectif en simple :
 
Faire un menu flash avec possibilité de personnaliser une barre de lien lorsque l'utilisateur est connecté.
 
j'ai pas vraiment pensé devenir pro AS (>_< ) mais j'apprends juste ce qu'il me faut pour mon projet, Effectivement apprendre les bases pourrai me faire gagner du temps (ou pas ?).
 
Mais si j'arrive a faire ça alors la base sera terminé, et donc j aurais plus de temps pour alléger/améliorer mon menu et mes codes. (en AS3 ??? ;D)


---------------
Ritouné mwen lé ritounin
Reply

Marsh Posté le 27-08-2009 à 13:01:54    

deja, le fais de mettre de l'as DANS le bouton, implique que "this" renvoit à ce dernier, et non la racine qui devrait contenir les variable...
Sinon, je ne vois à aucun moment le code en AS qui récupère au PHP les valeurs que variable1 etc... doivent prendre...
Sinon, réussir un truc n'est pas forcément synonyme d'un acquis, ici c'est le contraire, t'en es au point ou ton code ne fonctionne pas sans comprendre pourquoi... tu vas surement trouver une issue en bricolant plus ou moins adroitement... au final, tu auras acquis une mauvaise habitude...


Message édité par abais le 27-08-2009 à 13:05:31

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 27-08-2009 à 14:42:56    

ho c'est complètement vrai lol!
mais bon je pense pas que je soit complètement a coté de la plaque
 
pour le code dans les boutons je sais que c'est pas bien mais c'est juste le temps du test ensuite avec une boucle a la racine je donnerai a mes bouton les valeurs qui vont bien pour reduir les lignes de code et répétition... bref vous m'avez compris.
 
L'AS qui récupère au PHP les valeurs que variable1... doivent prendre sont récupéré par cette ligne en image clé 1 a la racine du swf :

Code :
  1. loadVariablesNum("script.php", 0, POST);


 
je suis arrivé jusque ici avec ton aide et l aide de flash
je bricole et bidouille sans avoir de base donc oui c'est nul(de mon point de vue) mais pour moi plus vite j ai fini la base plus vite on me laisse tranquille et je pourrai alors revoir et amélioré mon menu (j'ai demandé des stages à mon travail, pour flash/as.. et total je les passes au mois d'octobre :/ au moins j'aurais de quoi poser des questions lol).


Message édité par ails le 27-08-2009 à 14:58:12

---------------
Ritouné mwen lé ritounin
Reply

Marsh Posté le 27-08-2009 à 15:45:22    

(pardon pour le double poste)

 

En fait le truc c'est que j'ai bien une idée pour fair ce que je veux sans être sur que ça fonctionne mais...

 

c'est possible de faire un AS comme ça et si oui c'est LOURD ou pas ?

 
Code :
  1. nomdefunction?jesaispas.onLoad = function() // je sais pas comment faire cette commande ni si c'est possible
  2. {
  3. var a_envoi2:LoadVars = new LoadVars();
  4. var a_recevoir2:LoadVars = new LoadVars();
  5. a_recevoir2.onLoad = function (succes:Boolean)
  6. {
  7. if(succes)
  8. {
  9. for (i=1 & i<x_menu) // doit y avoir un int=1 je sais pas non plus comment faire des boucle en AS bref
  10.  {
  11.   bmenu.i++.onRelease =  function() // je sais pas du tout comment faire c'est juste l'idée
  12.   {
  13.    getURL(this.bmenu.i++, "_blank" ); // le nom de bouton sera standard pour les menus
  14.   }
  15.   txtbmenu.i++ = this.phpbmenu.i++; // comment lier l'objet et i ?
  16.  }
  17. }
  18. };
  19. a_envoi2.sendAndLoad("script.php", a_recevoir2, "POST" );
  20. };
 

conclusion j'imagine que si j'ai pas de session ouverte sous php, au chargement il charge la fonction 1,
si non je charge la 2
et si je me connecte il charge la 2.

 

voila me demande si un truc comme ça est possible

 

merci


Message édité par ails le 27-08-2009 à 16:40:32

---------------
Ritouné mwen lé ritounin
Reply

Marsh Posté le 28-08-2009 à 15:30:19    

bonjour,

 

voila j ai répondu à ma question mais j'en ai d'autres
j ai du lire les base de AS sur le site du zéro
ça aide c'est vrai...
bon j ai fait l'AS de chargement de titre pour les text_field mais j ai un problème

 

j ai 1 calque avec 7 image

 

sur la première
j ai 6 text_field dynamique du nom de txtacl1, txtacl2, ....
sur la deuxième
j ai 6 autre text_field dynamique du nom de txtacl7 ....

 

12 text_field de 1 a 12

 

j ai un 2 eme calque avec:

 

un bouton du nom de button_loader en img1 pour le executer le script
un bouton qui va à l'image 1 du nom de "btn1"
un bouton qui va à l'image 2 du nom de "btn2"

 

puis le calque 3 avec l'AS en image clé 1:

 
Code :
  1. stop();
  2. btn1.onRelease = function()
  3. {
  4. gotoAndStop("1" );
  5. };
  6. btn2.onRelease = function()
  7. {
  8. gotoAndStop("2" );
  9. };
  10. button_loader.onRelease = function ()
  11. {
  12. var a_en:LoadVars = new LoadVars();
  13. var a_rec:LoadVars = new LoadVars();
  14. a_rec.onLoad = function (succes:Boolean)
  15. {
  16. if(succes)
  17.  {
  18. var i:Number;
  19. for(i=1; i<12; i++)
  20.   {
  21.    _root["txtacl"+i].text = this["acl"+i];
  22.   }
  23.  }
  24. };
  25. a_en.sendAndLoad("script.php", a_rec, "POST" );
  26. };
 

lorsque je clic sur button_loader mes titre ce charge
no problème mais :

 

Si je passe a l'image 2 je perd les titres pourquoi ???
(même si je reviens sur l'image 1 il n'y à plus rien)
je peut les recharger peut importe sur quel image je suis 1 ou 2

 

merci par avance pour votre aide.


Message édité par ails le 28-08-2009 à 15:41:06

---------------
Ritouné mwen lé ritounin
Reply

Marsh Posté le 31-08-2009 à 11:45:29    

Code :
  1. stop();
  2. btn1.onRelease = function()
  3. {
  4. gotoAndStop("1" );
  5. };
  6. btn2.onRelease = function()
  7. {
  8. gotoAndStop("2" );
  9. };
  10. button_loader.onRelease = function ()
  11. {
  12. var a_en:LoadVars = new LoadVars();
  13. var a_rec:LoadVars = new LoadVars();
  14. a_rec.onLoad = function (succes:Boolean)
  15. {
  16. if(succes)
  17.  {
  18. var i:Number;
  19. for(i=1; i<12; i++)
  20.   {
  21.    _root["txtacl"+i].text = this["acl"+i];
  22.   }
  23.  }
  24. };
  25. a_en.sendAndLoad("script.php", a_rec, "POST" );
  26. };


bonjour,  
 
je tente encore de comprendre pourquoi ça ne garde pas mes valeurs dans les textfields,
j'ai vue beaucoup de site tutoriel pour expliquer les boucles for mais rien qui explique si oui ou non les valeur de la boucle sont conservé ou vider après la prochaine action.
 
Le script ci-dessus récupère bien mes données php mes textfields ce charge bien du texte mais lorsque je bouge dans mon animation les valeur disparaisse comment garder les valeurs d'un boucle ?
(jusque a ce que l'on ré-exécute celle-ci ?)
 
merci par avance pour votre aide
j'ai vraiment besoin de vous merci.
 
John


---------------
Ritouné mwen lé ritounin
Reply

Marsh Posté le 31-08-2009 à 12:38:06    

Ce script est seulement sur la premiere image clé (tu as mis une clé vide en 2) ou est ce qu'il est sur un ensemble de clé ?


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 31-08-2009 à 13:11:46    

c'est un script sur l'image clé 1 en racine  
mais j'ai mis l'AS sur un ensembles de clé 1 à 7 pour tester et sur toutes les clés en clé unique par image et ça ne fonctionne pas non plus :/  
merci.

Reply

Marsh Posté le 31-08-2009 à 13:11:46   

Reply

Marsh Posté le 31-08-2009 à 13:32:13    

bon j arrive a garder mes titre avec un onEnterFrame { fonctionname(); }
mais je suis pas sur que ce soit une bonne solution :/
j'aimerais avoir votre avis merci par avance.

Reply

Marsh Posté le 01-09-2009 à 11:55:41    

ails a écrit :

bon j arrive a garder mes titre avec un onEnterFrame { fonctionname(); }
mais je suis pas sur que ce soit une bonne solution :/
j'aimerais avoir votre avis merci par avance.

 


bonjour,
bon j'ai pas beaucoup avancé, juste qu'il faut forcer l'arrêt du onEnterFrame par un delete...
mais cela me semble pas terrible j'espere pouvoir trouver une autre méthode.

 

Par contre j'ai un autre problème je cherche a récupérer la valeur de i dans une boucle for:

Code :
  1. button_loader.onRelease = function ()
  2. {
  3. var a_en:LoadVars = new LoadVars();
  4. var a_rec:LoadVars = new LoadVars();
  5. a_rec.onLoad = function (succes:Boolean)
  6. {
  7. if(succes)
  8.  {
  9. var i:Number;
  10. for(i=1; i<12; i++)
  11.   {
  12.    this["txtacl"+i].text = this["acl"+i]; // ok pour les titre
  13.    this["bacl"+i].vari=i;
  14.     trace (this[+i]) // donne undefinided
  15.     trace ([+i]) // donne 1, 2, 3, 4
  16.     trace (this[+vari]) // donne undefinided
  17.     trace ([+vari]) // donne undefinided ???
  18.    this["bacl"+i].onRelease = function();
  19.     {
  20.     getURL (this["lienacl"+vari], "_blank" );
  21.     trace (this[+vari]) // donne undefinided
  22.     trace (_root[+vari]) // donne undefinided
  23.     trace (this[vari]) // donne undefinided
  24.     trace (this[+i]) // donne undefinided
  25.     trace (_root[+i]) // donne undefinided
  26.     }
  27.   }
  28.  }
  29. };
  30. a_en.sendAndLoad("script.php", a_rec, "POST" );
  31. };
 

voila j ai du mal a comprendre pourquoi j ai pas ma valeur, j ai vue plein de tutoriel pour les autres ça fonctionne!
j'ai vraiment besoin d'aide je cherche déjà depuis jeudi dernier snif.

 

merci par avance pour vos lumières.


Message édité par ails le 01-09-2009 à 11:57:02

---------------
Ritouné mwen lé ritounin
Reply

Marsh Posté le 02-09-2009 à 10:36:01    

Code :
  1. button_loader.onRelease = function ()
  2. {
  3. var a_en:LoadVars = new LoadVars();
  4. var a_rec:LoadVars = new LoadVars();
  5. a_rec.onload = function (succes:Boolean)
  6.         {
  7. if(succes)
  8.                 {
  9.         var i:Number;
  10.         for(i=1; i<12; i++)
  11.                         {
  12.                              // this["txtacl"+i].text = this["acl"+i];
  13.                              // je remplace les titres par les liens pour tester la variable de récupération
  14.                              this["txtacl"+i].text = this["lienacl"+i]; //lien à la place des titres=lien[ok]
  15.                              //les lien s'affiche bien sur les boutons
  16.                              this["bacl"+i].vari=i;
  17.                              this["bacl"+i].onRelease = function();
  18.                                      {
  19.                                         getURL (this["lienacl"+this.vari], "_blank" ); // = undefined
  20. // ici le problème c'est que this["lienacl"+this.vari] doit donner :
  21. // (this.lienacl2, "_blank" ); mais ça ne récupère pas les liens
  22. // si je test en dur  getURL (this.lienacl2, "_blank" );
  23. // ça ne fonctionne pas dans les {} de for
  24. // donc j'ai fait des tests avec ces lignes la suite ne change pas :
  25. indice = this["lienacl"+i]; -ou- var indice = this["lienacl"+i];
  26. // this["bacl"+i].vari=i;
  27. // this["bacl"+i].onRelease = function();
  28. // {
  29. // getURL (this.indice, "_blank" ); // mais ça donne undefined
  30. //...
  31.                                      }
  32.                         }
  33.                 }
  34.         };
  35. a_en.sendAndLoad("script.php", a_rec, "POST" );


problème résolu en partie :/
j'avais pas fait la diference entre i et vari qui est une variable simple et i qui incrémente du coup logiquement il faut un . et non un + pour vari bref je recupere bien la valeur de i pour chaque bouton

 

mais comme expliqué dans le code je ne récupère pas la variable du sendAndLoad dans la boucle for du coup j ai fait plusieurs test mais ça na pas fonctionné

 

A moins que la solution à la quel je viens de pensé soit
getURL (a_rec.this["lienacl"+this.vari], "_blank" );
ou
getURL (a_rec["lienacl"+this.vari], "_blank" );
un truc comme ça je sais pas trop.

 

j'arrive pas encore a bien comprendre comment accéder au différent niveau de valeur dans un code comme ça
pour aller chercher des élément de scène c'est OK mais la je me mélange les doigts snif
merci d'avance


Message édité par ails le 02-09-2009 à 10:37:15

---------------
Ritouné mwen lé ritounin
Reply

Sujets relatifs:

Leave a Replay

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