2010-01-21 8 views
3

Je fais un classement de jeu sur facebook. Je n'utilise pas de connexion mais je travaille à l'intérieur de la toile. Quand j'essaye de charger les images de facebook cela me donne l'erreur suivante.Erreur de fichier de politique lors du chargement des images facebook facebook

SecurityError: Error #2122: Security sandbox violation: Loader.content: http://test cannot access http://profile.ak.fbcdn.net/v22941/254/15/q652310588_2173.jpg A policy file is required, but the checkPolicyFile flag was not set when this media was loaded. 

Voici mon code de chargeur

public var preLoader:Loader; 
    preLoader=new Loader(); 
     **update** 
     Security.loadPolicyFile('http://api.facebook.com/crossdomain.xml'); 
     Security.allowDomain('http://profile.ak.fbcdn.net'); 
     Security.allowInsecureDomain('http://profile.ak.fbcdn.net'); 
        **update-end** 


     public function imageContainer(Imagewidth:Number,Imageheight:Number,url:String,path:String) { 
     preLoader=new Loader(); 

     Security.loadPolicyFile("http://api.facebook.com/crossdomain.xml"); 
     var context:LoaderContext = new LoaderContext(); 
     context.checkPolicyFile = true; 
     context.applicationDomain = ApplicationDomain.currentDomain; 

     preLoader.load(new URLRequest(path),context); 

Des idées? J'importe la bonne classe cependant.

MISE À JOUR: Je chargement des images d'un autre domaine dire, appelant func http://fahim.com images sont de http://profile.ak.fbcdn.net/v22941/254/15/q652310588_2173.jpg quelque chose (j'ai fait que les images sont statiques ne nécessitent pas de connexion facebook ou quoi que ce soit, ils ne sont que l'utilisateur images de profil public)

+0

Si vous chargez à partir de facebook, alors pourquoi est-ce que vous chargez le fichier de politique de felinefrenzy.com? – Amarghosh

+0

@Amarghosh, je suis désolé, je n'ai pas mis à jour là-bas. Dans mon code d'origine, j'utilise facebook crossdomain. Je viens de mettre à jour cela. Cela me donne toujours exactement la même erreur. @ sberry2A, Oui j'avais besoin de changer le nom et j'utilisais des URL différentes maintenant une mention facebook et ainsi de suite. Bien que tous les changements me donnent toujours la même erreur. –

+0

Êtes-vous certain de cette ligne aussi 'context.checkPolicyFile = true;'? Cela fait-il partie du code original lui-même? Le fichier de politique à cet endroit semble être correct. – Amarghosh

Répondre

1

obtenu ce travail, le fichier de stratégie de facebook pour les images est un autre endroit et je me suis tourné tout le reste à « * »

Merci pour l'aide tout le monde.

Security.loadPolicyFile ('https://fbcdn-profile-a.akamaihd.net/crossdomain.xml');

+1

quelle est l'URL du fichier de politique de Facebook pour les images ?? –

3
var loaderContext:LoaderContext; 
loaderContext= new LoaderContext(); 
loaderContext.securityDomain=SecurityDomain.currentDomain; 
loaderContext.checkPolicyFile = true; 

..then passe loaderContext lors de l'appel load()

9

Ceci est l'URL du fichier de stratégie d'image:

Security.loadPolicyFile('https://fbcdn-profile-a.akamaihd.net/crossdomain.xml'); 

Avec ce tout en ligne devrait fonctionner très bien.

+4

Vous devez être très amusant lors des fêtes. –

1

Si vous voulez simplement afficher une image, sans obtenir ses données, une bonne solution ne tente pas d'utiliser ces données. Dans ce cas, vous n'avez pas besoin d'autoriser la sécurité et les fichiers interdomaines. Utilisez uniquement un code de chargement simple:

backgroundLoader.unload(); 
backgroundLoader.contentLoaderInfo.addEventListener(Event.INIT,backgroundImageLoaded, false, 0, true); 

var lc : LoaderContext = new LoaderContext(); 
lc.checkPolicyFile = false; 
backgroundLoader.load(new URLRequest(imagePath_),lc); 

où backgroundLoader est une variable de classe de type Loader. Puis, quand il vient d'utiliser l'image pour l'ajouter à votre toile, ne demande pas les données afficher (ne pas utiliser e.currentTarget.content), seule l'image:

function backgroundImageLoaded(e:Event) : void { 
    myMovieClip.addChild(backgroundLoader); 
} 

(Solution de http://www.onegiantmedia.com/as3--load-a-remote-image-from-any-url--domain-with-no-stupid-security-sandbox-errors)

Questions connexes