Tutorial - Comment récupérer des variables passées en GET, dans un swf Flash avec FlashVars
Pour un de mes projets, je devais charger des données personnalisées depuis une base MySql dans un swf Flash.
L'identifiant permettant de retrouver ces données dans la base était indiqué dans l'url de la page sous la forme index.php?id=xxx.
Ce n'était pas une valeur POST mais
une valeur GET qu'il fallait récupérer.
Après avoir testé plusieurs solutions (LoadVariables(), load() ...), la solution la plus simple fut de transmettre l'identifiant
grâce aux
FlashVars. Avec
un peu de PHP et d'ActionScript (as), les données sont chargées automatiquement dans mon SWF.
Ce tutorial présente le code source à écrire pour pouvoir utiliser ces FlashVars sous
tous les navigateurs web.
Passer des variables en FlashVars
Pour pouvoir fonctionner dans tous les navigateurs, les FlashVars doivent être présente dans
les balises OBJECT et EMBED.
Toutes les variables sont crées avant que la première image du swf soit jouée.
Un espace peut être représenté à l'aide d'un '+'.
Exemple pour le tag OBJECT :
<PARAM NAME=FlashVars VALUE="id=identifiant&autre-flashvars=autre+variable">
Exemple pour le tag EMBED :
<EMBED src="FlashVars.swf" FlashVars="id=identifiant&autre-flashvars=autre+variable" ... (autres paramètres)></EMBED>
Le code PHP pour récupérer la variable GET de l'url
Le code PHP pour récupérer la variable $_GET et l'intégrer aux FlashVarsest très basique.
On va prendre ici une url de la forme page.php?id=xxx.
if(isset($_GET["id"]) && $_GET["id"]!=""){
$getId = $_GET["id"];
$data_object="<PARAM NAME=FlashVars VALUE=\"id=$getId\">";
$data_embed="FlashVars=\"id=$getId\"";
}
Il vous suffit ensuite d'
intégrer ces valeurs dans les tags OBJECT et EMBED correspondant.
Le code suivant donc bien sur être adapté à votre swf et à vos variables.
On a donc du code sous la forme :
<OBJECT classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0' ID=postcard WIDTH=400 HEIGHT=400>";
<?php
$data.="<PARAM NAME=movie VALUE='FlashVars.swf'>";
$data.="<PARAM NAME=quality VALUE=high>";
if(isset($_GET["id"]) && $_GET["id"]!=""){
$getId = $_GET["id"];
$data_object="<PARAM NAME=FlashVars VALUE=\"id=$getId\">";
$data_embed="FlashVars=\"id=$getId\"";
}
$data.=$data_object;
$data.="</OBJECT>";
$data_emb.="<embed src='FlashVars.swf' quality=high WIDTH=400 HEIGHT=400 TYPE='application/x-shockwave-flash' PLUGINSPAGE='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' ";
$data_emb.=$data_embed;
$data_emb.=">";
print $data;
print $data_emb;
?>
Récupérer les variables passées en FlashVars sous Flash
Pour
charger les variables passées en FlashVars sous Flash, c'est très simple puisqu'elle sont placées immédiatement au niveau _root avec le nom de variable que vous avez précisé dans votre code.
Il vous suffit donc d'indiquer ce nom identifiant
dans le champ Var. des propriétés de votre champ texte.
Si vous souhaitez passez des
variables en POST avec une page PHP séparée, consultez ce tutorial :
Tutorial - Faire communiquer Flash avec un script PHP / MySQL en utilisant LoadVars
Si vous avez des problèmes avec
l'utilisation des FlashVars votre site web, laissez un commentaire sur cet article.
je suis tout nouveau et franchement c'est le seul site qui propose un tutoriel pour crée un jeux bravo.
C'est possible que tu mettre une page de résulat après les tutoriels c'est juste comme ça.C'est pas tout ça mais tu m'a donne du boulot ^^