Comunidad de diseño web y desarrollo en internet online

Flash no carga jpgs con crossdomain

Citar            
MensajeEscrito el 28 Jun 2012 11:09 am
Hola. Estoy haciendo un microsite en el que se tienen que cargar un par de fotos. Las fotos están alojadas en un servidor diferente de donde se aloja el swf, así que le he incluido un archivo crossdomain.xml con la siguiente linea:

Código :

<allow-access-from domain="*" /></allow>


Y para cargar cada una de las imágenes hago lo siguiente:

Código ActionScript :

var loader1:Loader = new Loader();
loader1.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
function onComplete(e:Event):void
{
   var bitmap:Bitmap = e.target.content as Bitmap;
   bitmap.width = 249;
   bitmap.height = 249;
   var smoother_bm =Bitmap(loader.content);
   smoother_bm.smoothing = true;
imagenes_mc.img1.img_holder.addChild(bitmap);
}
loader2.load(new URLRequest("miUrl"));


Sin embargo las imágenes que si se cargan cuando pruebo la película en flash, siguen sin cargarse en el servidor del cliente. He estado buscando por aquí y dan una solución, que es, que Flash permite cargar imágenes desde cualquier dominio, sin que sea necesario un crossdomain. Sin embargo, no permitae acceder a la propiedad content del loader, ni formar un objeto BitmapData con la imagen tal y tenemos que decirle a flash que busque el archivo de seguridad antes de cargar la imagen.

Lo he hecho así:

Código ActionScript :

var loader:Loader = new Loader();
var req:URLRequest = new URLRequest ("miUrl");
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
function onComplete(e:Event):void
{
   var bitmap:Bitmap = e.target.content as Bitmap;
   bitmap.width = 249;
   bitmap.height = 249;
   var smoother_bm = Bitmap(loader.content);
   smoother_bm.smoothing=true;
   imagenes_mc.img1.img_holder.addChild(bitmap);
   var context:LoaderContext = new LoaderContext()
   context.checkPolicyFile = true;
   loader.load (req , context);
}

Pero de esta manera no carga la imagen ni si quiera al probar la película desde flash.

¿Alguna solución?

Por plug

78 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Jun 2012 12:15 pm
Esta línea no tiene mucho sentido a menos que lo pongas adrede para ocultar la URL real

URLRequest("miUrl")

Luego la única forma de saltarse el sanbox es usar un proxy en cualquier lenguaje de back-end que dispongas, por ejemplo con PHP haces un file(servidorRemoto) y se lo sirves a Flash como si fuera local, es una técnica que viene desde Flash 5

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 28 Jun 2012 01:16 pm
Si. Lo de miUrl lo he puesto para no usar la url real que, por ahora no puedo poner. :)

Al final me ha salido de la siguiente manera:

Código ActionScript :

var loader:Loader = new Loader ();
var req:URLRequest = new URLRequest ("https://miUrl");
var context:LoaderContext = new LoaderContext()
context.checkPolicyFile = true;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteTest);
loader.load (req , context);

function onCompleteTest (event:Event):void
{
    var bitmapData:BitmapData = event.target.content.bitmapData;
    var bmVis:Bitmap = new Bitmap(bitmapData);
   bmVis.height = 249;
   bmVis.width = 249;
   bmVis.smoothing = true;
   imagenes_mc.img1.img_holder.addChild(bmVis);
}


Lo que hice fue sacar el context fuera de la función y ahora carga los jpgs bien.

Gracias!

Por plug

78 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Jun 2012 01:18 pm
Ah, pero entonces tienes el crossdomain, pense que querias cargarlo de un dominio que no controlbas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.