FrancaisAdobe Flex Tutorial
jeux flash gratuit

[Web] - Utiliser FlashVars pour récupérer une variable contenue dans l'url de la page


Tutorial - Comment récupérer des variables passées en GET, dans un swf Flash avec FlashVars
tutorial flashvars variable swf get
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.
flashvars 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.




Tutorial : Comment créer un jeu flash, ActionScript et animation (1) >

< Kongregate, le site communautaire de jeux flash gratuits




Commentaires

  • Le 21.07.2008, par Valbuena72

    salut,
    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 ^^
Vous devez être inscrit pour pouvoir ajouter un commentaire
bouton inscription jeux
Aide | Contact | Règlement | Plan du Site | tutorial illustrator flash css php