<h2>Votre Formation vidéo</h2><br/>
Votre formation est décomposée<br/>
en chapitres très clairs de 20 à 30 min. <h2>Des exemples SWF </h2><br/>
Chaque leçon est accompagnée<br/>
du code source avec le fla et les classes. <h2>Votre Suivi personnalisé</h2><br/>
Vous pouvez  me poser toutes<br/>
vos questions sous les cours vidéos.

Comment éviter la mise en cache d’un swf / fichier xml en AS3 ?

1 question

Écrit le 20 novembre par Matthieu
Publié dans le(s) sujet(s) ActionScript 3 |Adobe Flash

Mots clés : , , , , , , , , ,

Le Kit du Développeur Flash

Nous allons découvrir une astuce très simple pour complètement oublier la mise en cache du Flash et du Navigateur Internet (Firefox, Google Chrome, Internet Explorer…).

Introduction

Un problème qui revient souvent avec Flash sous différentes forme :

  • je charge un fichier xml dans Flash et les données affichées ne sont pas à jour!
  • je modifie le swf, la page web m’affiche toujours l’ancienne version du swf, toujours pas de mise à jour!

Et tout cela provient de la mise en cache des données (swf, xml, texte…) par votre Navigateur Web et Flash.

Utilisation d’une variable aléatoire

Désactiver le cache des fichiers xml, eden et textes

Il suffit d’utiliser une variable générée aléatoirement pour charger vos fichiers de configuration (xml, eden, texte).

Dans votre code AS3, ajoutez tout simplement une variable aléatoire lorsque vous chargez un fichier de configuration.

// chargement du fichier XML
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler );
loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler );
 
// chargement du fichier xml et gestion du cache du navigateur
var sXml:String = 'https://www.actionscript-facile.com/ressources/xml/interface.xml?nocache='+Math.random()*28;
 
Logger.debug ("url : "+sXml); // debug de l'application avec l'extension firefox Firebug
 
var file:URLRequest =  new URLRequest(sXml);
loader.load(file );

En principe, j’utilise la fonction AS3 Math.random(). Il est possible d’utiliser la fonction Date() ou une autre. L’important est d’appeler votre fichier xml avec une variable aléatoire.

Télécharger le code source complet sur l’article : Création d’un Mini Flex avec les Composants AS3 Facile. C’est un fichier xml qui détermine le contenu affiché par le swf.

Amusez-vous ensuite à modifier le contenu du fichier xml pour mettre à jour les informations affichées par le swf.

Désactiver le cache du swf

Pour afficher un swf dans une page Web tout en désactivant sa mise en cache, j’utilise exactement la même astuce.

C’est à dire, je crée une variable générée aléatoirement avec le chemin de mon swf. Regardez l’exemple ci-dessous (la toute dernière ligne avec echo rand(2,28)) :

SWFObject   
<script type="text/javascript" src="swfobject.js"></script>
 
<div id="flashcontent">
N'oubliez pas d'activer le Javascript.
</div>
<script language="JavaScript" type="text/javascript">
 
	var flashvars =
	{
		contextFile: "application.eden",
		dataFile: "datas.xml",
		lang : "fr",
		progressColor: "0x2d2d2d",
		progressMessage: "Chargement en cours..."
	};
 
	var params =
	{
		allowScriptAccess : "always"  ,
		bgcolor           : "#ffffff"  ,
		quality           : "best"
	} ;
 
	var attributes =
	{
		align : "middle",
		name: "application_musique"
	} ;
 
	swfobject.embedSWF("https://www.actionscript-facile.com/swf/application.swf?nocache=<?php echo rand(2,28) ?>", "flashcontent", "234", "382", "9.0.124", "expressInstall.swf", flashvars, params, attributes );
</script>

La fonction php rand() crée une variable aléatoire. Le navigateur croit que c’est un nouveau fichier swf, donc il le charge à chaque fois!

Consultez cet article: Comment utiliser SWFObject pour afficher du contenu flash ? . SWFObject présente l’avantage d’optimiser l’affichage des swf pour les moteurs de recherche (Google, Yahoo…).

Et vous, quelle solution utilisez-vous pour empêcher la mise en cache de Flash et du Navigateur Internet ?

Est ce que vous utilisez les header() en php, ou avez-vous une autre astuce ?

Je suis curieux de découvrir vos techniques de gestion du cache en ActionScript / Flash.



Développez des Jeux et Applications Flash avec la Formation AS3 Facile !

Recevez Gratuitement Des Cours en Vidéos, des codes source et des livrets de formation.
Et en bonus gratuit : Le Framework AS3 Facile ! 


Phasellus ipsum et, dictum tristique elit. sit