Flickr, Flash, PV3D, Crossdomain en LoadPolicy


Na twee weken nachtmerries en echt niet meer weten waar ik het moest zoeken ben ik er eindelijk uit.
Ik had keurig een script geschreven waarmee ik een xml ophaalde vanaf flickr en daaruit links naar fotos filterde deze kon ik daarna ook gewoon plaatsen en klaar dacht ik. Helaas was het tegendeel waar eenmaal buiten de ontwikkelomgeving (Flash Develop) werden er geen fotos geplaatst. Hierbij de oplossingen voor de problemen die ik tegen kwam.

Om te zorgen dat je een xml kan ophalen vanaf een site anders dan jouw eigen site. Moet er op de externe site een Policyfile staan bijvoorbeeld. http://static.flickr.com/crossdomain.xml
In AS kun je deze policyfile vervolgens controleren.

Security.loadPolicyFile("http://static.flickr.com/crossdomain.xml");

Wanneer je vervolgens een afbeelding wilt laden om in Pv3d te gebruiken dien je nogmaals een controle uit te voeren om te zien of je toegang hebt.

Je kan nu je material object op twee manieren van een afbeelding voorzien, de eerste is door de BitmapFileMaterial classe van Papervision3D te gebruiken en daar de volgende regels code aan toe te voegen.


var loaderContext:LoaderContext = new LoaderContext ();
loaderContext.checkPolicyFile = true;

Voeg vervolgens de controlle uit op het aanwezig zijn van een policy file.

bitmapLoader.load( request ,loaderContext);

Wanneer je liever niet aan de classes van PV3D sleuteld, zul je de afbeeldingen eerst om moeten zetten naar een bitmap object. Laad de afbeeldingen in en voer wederom een controle uit.


var loaderContext:LoaderContext = new LoaderContext ();
loaderContext.checkPolicyFile = true;
imageLoader.load( new URLRequest( imageLink, loaderContext );

Vervolgens gebruik je de images als Bitmap data en dit kun je als materiaal meegeven aan je 3d object.


var loadedBitmap : Bitmap = e.target.content as Bitmap;
var bitmap : BitmapData = loadedBitmap.bitmapData;

Meer informatie vind je hier:
Over toegang tot flickr
Adobe livedocs
Over de policyfile

Please Share:
  • Digg
  • del.icio.us
  • Google Bookmarks
  • email
  • LinkedIn
  • Live
  • NuJIJ
  • Reddit
  • TwitThis
  • YahooMyWeb

If you enjoyed this post, make sure you subscribe to my RSS feed!


TAGS: , , , , , , , ,