Languages

la sandbox de sécurité de Flash

Gérer le sandbox de Flash peut parfois être compliqué . Je n'arrivais pas à charger des images extérieurs à partir de mon Flash. Bien qu'en compilant les images se chargeaient correctement, une fois sur mon site, impossible de charger les images . Pour débugger dans ces cas là , un seul moyen, faire un try catch et tracer l'erreur en affichant son texte dans un textfield...
C'est ainsi que j'ai pu apercevoir l'origine du problème : une erreur 2122 .

" 2122 Violation du sandbox de sécurité : _: _ ne peut pas accéder à _. Un fichier de régulation est nécessaire, mais l'indicateur checkPolicyFile n'a pas été défini lors du chargement de ce média."
J'essaierais de revenir sur cet article afin de l'étoffer un peu , néanmoins en attendant voila une solution (pour les plus avertis) ...

	import flash.display.Loader;
	import flash.system.LoaderContext ;
	import flash.display.LoaderInfo;
// Dans le constructeur du clip , allez charger le crossdomain.xml qui définit les règles d'accès aux fichiers du site ...

				Security.allowDomain("www.sensue.com");
				Security.loadPolicyFile("http://www.sensue.com/crossdomain.xml");
				var request:URLRequest = new URLRequest("http://www.sensue.com/crossdomain.xml");
				var loader:URLLoader = new URLLoader();
				loader.load(request);

// lors du chargement des images , rajoutez un objet LoaderContext (issu de flash.system) qui vérifie que les regles ont bien été chargées..
			var myRequest:URLRequest = new URLRequest(imgString); 
				var loaderContext:LoaderContext = new LoaderContext();
				loaderContext.checkPolicyFile = true;

			
			myLoader.load(myRequest,loaderContext); 

	

»