Aide - Recherche - Membres - Calendrier
Version complète : Transfert de variables PHP vers Flash
Centre de Formation Flash - Forums Adobe Flash > Adobe Flash > Programmation Actionscript > Actionscript 2
Bozomobile
Bonjour !

Avant toute chose, je tiens à préciser que je suis vraiment débutant en Flash (je suis un peu dans l'obligation de l'utiliser dans le cadre de mon stage), c'est pourquoi je lutte sur un script qui peut paraître simple aux personnes familières à l'utilisation de ce logiciel.

Je cherche à recevoir et afficher des variables provenant d'un script PHP.

J'ai passé pas mal de temps à chercher sur Google, je crois qu'il faut utiliser une fonction appelée LoadVariables, mais je ne comprends rien à son fonctionnement (même dans la rubrique d'aide de Flash).

Du côté du script PHP, j'ai ceci :

PHP

function envoi($var, $val)
{
echo "&".$var."=".utf8_encode($val);
}

envoi("nom",$nom);
envoi("prenom",$prenom);
envoi("mail",$mail);


Est-ce que vous pouvez confirmer de la validité de ce morceau de code ?

Mon problème reste surtout à recueillir les variables côté flash, et afficher ces dernières.

Si quelqu'un pouvait me venir en aide, ça serait vraiment chouette. Merci d'avance. icon_wink.gif
laipreu
je te donne un site ou j'ai tout appris à ce niveau wink.gif

http://complet1.free.fr/bd_flash7/tutoriau...LoadVars_a1.php

Je marche en xml dès que je dois récupérer des données pour mon flash via une base de donnée, niveau organisation c'est franchement mieux.
Ou sinon je passe mes variables (quand j'en ai que quelques unes) directement dans le object du flash dans le panam et dans le embed de cette façon :

<param name="flashvars" value="nom_cat_1='.$nom_cat_1.'">
<embed src="player_multi/player_multi.swf" FlashVars="nom_cat_1='.$nom_cat_1.'">

Avec cette méthode tu récupères tes variables directement dans le flash sans traitement.

Action Script

trace(nom_cat_1);
Bozomobile
Salut laipreu, un grand merci pour ta réponse.

La méthode FlashVars me semble intéressante, puisque j'ai à peine 4 ou 5 petites variables à faire passer à Flash.

Par contre je ne comprends pas trop cette histoire de param et embed (je débute vraiment en flash, j'avais prévenu ^^).

Procédons par étape :

- Sur mon site web, j'ai un fichier index.php avec un formulaire.
- Les données du formulaire sont transmises à traitement.php où elles sont transformées en variables PHP.
- Sur cette page traitement.php, un lien permet d'ouvrir un popup animation.swf vers lequel j'aimerais transmettre ces variables.

J'arrive à accéder aux param et embed en publiant cette animation flash en php et en la modifiant avec notepad++. Mais comme j'utilisais seulement les fichier .swf et que ça marchait bien, je ne vois pas trop où placer ce fichier animation.php ni comment l'appeler dans mon script.

Sinon du coup, mon code ressemble à ça pour animation.php :

PHP


<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Animation</title>
</head>
<body bgcolor="#ffffff">
<!--URL utilisées dans l'animation-->
<!--texte utilisé dans l'animation-->
<!--

-->
<!-- saved from url=(0013)about:internet -->

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="790" height="450" id="test/animation" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="test/animation.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />

// ici je balance 3 variables : nom, prenom et mail

<param name="flashvars" value="nom='.$nom.'" >
<param name="flashvars" value="prenom='.$prenom.'" >
<param name="flashvars" value="mail='.$mail.'" >

// là-dedans aussi

<embed src="test/animation.swf" FlashVars="nom='.$nom.' , prenom='.$prenom.' , mail='.$mail.'" quality="high" bgcolor="#ffffff" width="790" height="450" name="test/animation" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>


Du coup il me suffit juste de taper nom, prenom et mail quelque part dans l'actionscript du fichier animation.fla pour voir le contenu de la variable dans l'animation ?
Et est-ce que je dois mélanger traitement.php et animation.php pour ne faire qu'un seul fichier ?

Enfin voilà à peu près où j'en suis, un peu paumé comme vous pouvez le constater.
Si quelqu'un a la solution à ce problème, j'en serai très intéressé. Merci d'avance. icon_wink.gif
laipreu
Dans ce cas traitement peut devenir animation.
Au lieu d'envoyer tes variables php sur traitement pour les rerenvoyer sur un autre fichier.
Tu les passes juste dans animation.php
Et les traite de la manière suivante en php:

Action Script


<?php
if(isset($_POST['nom'])){
$nom = $_POST['nom']
}
?>

Et de même pour tes autres variables.

Ensuite dans ton code object qui appelle ton flash tu les insères de cette manière dans le panam et le embed :

Action Script

<param name="flashvars" value="nom=<?php echo $nom; ?>&prenom=<?php echo $prenom; ?>&email=<?php echo $mail; ?>" > 
<embed src="test/animation.swf" FlashVars="nom=<?php echo $nom; ?>&prenom=<?php echo $prenom; ?>&email=<?php echo $mail; ?>" quality="high" bgcolor="#ffffff" width="790" height="450" name="test/animation" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />


Vu que ton fichier est en html, tu dois ouvrir les balises php à chaque fois que tu as besoin d'une variable, sinon ce sera interprété comme du html ^^
Et ensuite dans le flash c'est tout bête à utiliser!

wink.gif
Bozomobile
Whoohoo, j'ai réussi à afficher ma première variable php dans une animation flash !!!
Je remercie chaleureusement laipreu sans qui cet exploit n'aurait pas été possible. icon_mrgreen.gif

Bon, du coup mélanger animation.php et traitement.php m'ouvre le flash direct dans la page + le popup, mais je vais bien pouvoir trouver une parade.
Bob Le Nain
Moi aussi grâce au petit lien de laipreu j'ai réussi à faire communiquer flash avec ma base de données sql!
trop bien tout ça!
icon_mrgreen.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.