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 8] Récupération variables flash


Sujet :

Flash

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut [FLASH 8] Récupération variables flash
    Bonjour.
    Voilà j'arrive à transmettre des données de php vers flah, j'affiche alors un fichier SWF comme je souhaite. Dans ce clip flash, je peux boger (drag & drop) une image. je souhaiterais interragir sur le code du onMouseUp pour mettre certaines variables , en fait les coordonnées X et Y de l'image(dans un fichier texte, XML?) pour ensuite pouvoir les reprendre avec PHP.
    Mais c'est là que je coince.
    Je vois un peu partout qu'il faudrait utiliser loadvars mais je n'ai pas d'exemple concret.
    Pourriez-vous m'aider?
    D'avance, Merci

  2. #2
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Hello

    Exemple de LoadVars:

    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
     
    // Création de l'objet LoadVars.
    var lv:LoadVars = new LoadVars();
    // surcharge de la fonction onLoad qui est lancé automatiquement quand l'execution du script et le chargement des donnees est fini.
    lv.onLoad = function(success:boolean) {
         if (success) {
              // action a faire comme recuperer les donnees envoyes par le script dans une donnee flash.
         } else {
              trace ("erreur de chargement");
         }
    };
    // Ajout à cet objet des variables à transmettre au script php si y'en a besoin.
    lv.variable1 = ...;
    lv.variable2 = ...;
    // envoi des variables et recuperation du resultat.
    lv.sendandLoad("http://..../...php", this, "GET"); // GET ou POST
    Sinon l'aide sur LoadVars de flash est tres bien faite il me semble

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Merci pour ton aide.
    Mon swf est dans le fichier php Etape3.php et je souhaiterais qye les coordonnées soient renvoyées à chaque MouseUP donc.
    Voici le code :
    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
     
    listener.onMouseUp = function() {
    	deplacement = false;
    //On retourne ici les coordonnées du FondPaysage	
     
    // Création de l'objet LoadVars.
    var lv:LoadVars = new LoadVars();
    // surcharge de la fonction onLoad qui est lancé automatiquement quand l'execution du script et le chargement des donnees est fini.
    lv.onLoad = function(success:boolean) {
         if (success) {
              // action a faire comme recuperer les donnees envoyes par le script dans une donnee flash.
         } else {
              trace ("erreur de chargement");
         }
    };
    // Ajout à cet objet des variables à transmettre au script php si y'en a besoin.
    lv.variable1 = FondPaysage._x;
    //lv.variable2 = ...;
    // envoi des variables et recuperation du resultat.
    lv.sendandLoad("Etape3.php", this, "GET"); // GET ou POST
    };
    listener.onMouseMove = function() {
    	if (deplacement == true) {
    		FondPaysage._x = _xmouse;
    		FondPaysage._y = _ymouse;
    	}
    };
    Mais j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    **Erreur** Séquence = Séquence 1, calque = AffichageFondEcran, image = 1 :Ligne 58 : Impossible de charger la classe ou l'interface 'boolean'.
         lv.onLoad = function(success:boolean) {
     
    Total des erreurs ActionScript : 1 	 Erreurs signalées : 1
    Une idée?

  4. #4
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Hum... je pense que la declaration de l'objet LoadVars ainsi que la fonction onLoad doit etre definit hors du listener onMouseUp. Dans le listener il faut juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    lv.variable1 = FondPaysage._x;
    lv.sendandLoad("Etape3.php", this, "GET"); // GET ou POST
    Tiens moi au courant pour savoir si cela marche

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Non, c'était juste une erreur de frappe... j'avais mis boolean au lieu de Boolean...
    Par contre je fini donc par ceci dans le flash :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lv.sendandLoad("Etape3.php", this, "GET"); // GET ou POST
    et dans mon fichier Etape3.php :
    Mais c'est vide...
    Il faut faire qqchose de plus ?

  6. #6
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    il faut dans ton fichier php stocke ta variable comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    $variable1 = $_GET['variable1'];  // GET ou POST suivant la methode d'envoi dans le flash
    ?>
    ensuite ton echo devrait marche.
    par contre sendAndLoad, A majuscule

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Ca marche tjs pas
    flash :
    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
     
    listener.onMouseUp = function() {
    	deplacement = false;
    //On retourne ici les coordonnées du FondPaysage	
     
    // Création de l'objet LoadVars.
    var lv:LoadVars = new LoadVars();
    // surcharge de la fonction onLoad qui est lancé automatiquement quand l'execution du script et le chargement des donnees est fini.
    lv.onLoad = function(success:Boolean) {
         if (success) {
              // action a faire comme recuperer les donnees envoyes par le script dans une donnee flash.
         } else {
              trace ("erreur de chargement");
         }
    };
    // Ajout à cet objet des variables à transmettre au script php si y'en a besoin.
    lv.variable1 = FondPaysage._x;
    //lv.variable2 = ...;
    // envoi des variables et recuperation du resultat.
    lv.sendAndLoad("Etape3.php", this, "GET"); // GET ou POST
    };
    php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $variable1 = $_GET['variable1'];
    echo $variable1;
    tu vois ce qui peut clocher?

  8. #8
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    ton fichier .fla et ton fichier php sont dans le meme repertoire?
    sinon essaie aussi de mettre lv a la place de this dans le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lv.sendAndLoad("Etape3.php", this, "GET");

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Oui c'est bien dans le meme répertoire.
    Mon fichier Etape3.php contient juste le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?
    $variable1 = $_GET['variable1'];
    echo $variable1;
    ?>
    J'ai changé le this en lv, ça ne change rien.
    Quand j'ai cliqué sur mon image (si je fait un trace ca me renvoie bien les cordonnées) je lance le fichier Etape3.php , et j'ai page blanche.
    J'utilise EasyPHP donc apache comme serveur et pour les autres variables il marche impecc...
    il faut croire que le flash ne renvoie rien du tout.
    Il n'y a rien à faire lors de l'exportation?

  10. #10
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $variable1 = $_GET['variable1'];
    echo $variable1;
    ?>
    Regarde la premiere ligne, rajoute php apres le <? ca devrait aller mieux enfin j'espere

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    non change rien

  12. #12
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    si tu lances le fichier php seul, c'est normal que ca ne marche pas.
    pour le tester, dans ton fichier php mets ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    $variable1 = $_GET['variable1'];
    ?>
    <html>
    <head></head>
    <body>  <?php echo $variable1; ?>
    </body>
    </html>
    Et la lors du clic sur ton image en flash une page web devrait s'ouvrir avec la valeur de variable1.

    Faut savoir que quand tu fais un sendAndLoad et que tu fais un echo dans ton fichier php correspondant, le script s'execute et l'echo est renvoye a flash sans l'afficher dans un navigateur.

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Lors du clic sur mon image, ça ne me donne rien du tout.
    Et je ne vois pas de différence car avant, le flash envoie au fichier Etape3.php une valeur pour la variable "variabe1" et on lui dit de l'afficher.
    Comme on a rien, je suis sûr que la variable n'est pas exportée.
    Quelqu'un peut donner son avis?

  14. #14
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Tu peux tester d'une autre maniere pour voir si ton echange flash-php fonctionne.
    Dans ta fonction onLoad de ton LoadVars rajoute ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    lv.onLoad = function(success:Boolean) {
         if (success) {
              // action a faire comme recuperer les donnees envoyes par le script dans une donnee flash.
              var nombre = lv.variable2;
              trace ("nombre");
         } else {
              trace ("erreur de chargement");
         }
    };
    Et dans ton fichier php met ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $variable2 =  $_GET['variable1'];
    echo "variable2=".$variable2;
    ?>
    Ainsi ton trace dans ta fonction onLoad devrait afficher la variable1 que tu envoies a ton script php. Essaie ca et dis moi si c'est le cas ..

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    non ca ne change rien

  16. #16
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    bonjour,
    perso coté php je définis mes variables de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '&variable_1=valeur_1&variable_2=valeur_2
    cette syntaxe est très importante car j'ai cru comprendre que les variables sont passées par l'URL...
    si valeur_1 est dans une variable genre $var1 il faut reconstituer la chaine genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '&variable_1='.$var1
    et bien sur utiliser variable_1 dans flash

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    le problème est que mon flash n'envoie déja rien dans l'url !!
    Donc le prob ne vient pas du côté du php mais sur côté du flash !! c'est là que mon code est certainement faux...

  18. #18
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    As tu essayer de declarer ton LoadVars ainsi que la fonction onLoad associee en dehors de ta fonction listener.onMouseUp et de ne mettre dans ta fonction onMouseUp uniquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    lv.variable1 = FondPaysage._x;
    lv.sendandLoad("Etape3.php", this, "GET");

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Bon voici le code dans mon flash contenu dans la page page1.php :
    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
     
    // Création de l'objet LoadVars.
    var lv:LoadVars = new LoadVars();
    // surcharge de la fonction onLoad qui est lancé automatiquement quand l'execution du script et le chargement des donnees est fini.
    lv.onLoad = function(success:Boolean) {
         if (success) {
               // action a faire comme recuperer les donnees envoyes par le script dans une donnee flash.
     
         } else {
              trace ("erreur de chargement");
         }
    };
     
    listener.onMouseUp = function() {
    	deplacement = false;
    //On retourne ici les coordonnées du FondPaysage	
    lv.variable1 = FondPaysage._x;
    lv.sendandLoad("test.php", this, "GET");
    };
    Quand je clic sur le clip ca devrait envoyer une variable à "test.php"
    Je lance ensuite dans mon navigateur l'adresse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://127.0.0.1/test.php
    Mais rien ne se passe, j'ai juste affiché à l'écran :
    variable2=".
    Voici le code de test.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $variable2 =  $_GET['variable1'];
    echo "variable2=".$variable2;
    ?>
    Je suis sûr et certain que rien ne part du flash en fait.....
    Je pense au suicide là....

  20. #20
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Que ton fichier php ne te renvoie rien quand tu l'executes c'est normal car il n'a pas acces a la variable, pour voir si ton script seul marche il faut l'appeler par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://127.0.0.1/test.php?variable1=15
    Dans ce cas tu envoies bien a ton script une variable variable1 dont la valeur est 15 et la tu dois bien avoir en résultat variable2=15.
    Par contre revenons au sendAndLoad. Celui envoie une ou des variables à un script php qui celui ci par l'intermédiaire d'un echo renvoie un resultat a Flash et non pas a ton navigateur web. Donc quand tu cliques sur ton MovieClip il est tout à fait normal que ton script ne t'ouvre pas une fenetre avec l'echo d'affiché.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/01/2013, 11h07
  2. [FLASH 8] Passage variable Flash -> PHP cryptée
    Par gotcha007 dans le forum Flash
    Réponses: 13
    Dernier message: 20/11/2007, 03h07
  3. [FLASH 8] Detecter changement valeur d'une variable
    Par orelero dans le forum Flash
    Réponses: 1
    Dernier message: 18/02/2006, 18h25
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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