Comunidad de diseño web y desarrollo en internet online

*** Violación de la seguridad Sandbox ***

Citar            
MensajeEscrito el 10 Ago 2010 07:03 pm
Que tal gente?

Les paso a comentar mi probelma. Tengo que cargar con el método LoadClip() un swf externo. Pero al hacer esto me tira el siguiente error:

*** Violación de la seguridad Sandbox ***
El dominio de seguridad 'http://www.dominio.com.ar/Arq/foto1.jpg?nocaching=27954' ha intentado acceder al contexto incompatible 'file:///C|/Documents%20and%20Settings/Administrador/Escritorio/adfafsfd/index.swf'

He leído muhcos tutoriales acerca de esto y realmente nadie me pudo sacar la duda.

Uno de las molestias que causa este problema de Sandbox es al cargar el swf (una presentación para la página con fotos que van de un lado para el otro" se ven algunas fotos y otras no se ven, o aveces no lee todo el código AS, o algunos botones no funcionan. Lo cual deja el swf que cargamos totalmente inutil para trabajar con el.

El motivo por el cual utilizo el método LoadClip es por que estuve buscando un código que me cargue el swf con un preloader, entonces encontré el código y funciona a la perfección en la carga de imágenes, pero tmb tira el mismo error de Sandbox, es decir, la imagen carga, pero tira el mismo error.

Les dejo el código por si les interesa.


*****************************
var precargador_mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
Stage.showMenu=false;

listener.onLoadStart = function(target_mc) {
trace("Iniciando");
_root.attachMovie("barra", "barra_mc", _root.getNextHighestDepth());
_root.barra_mc._y = Stage.height/2;
_root.barra_mc._x = Stage.width/2;
};

listener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
trace("En progreso");
var porcentaje:Number;
porcentaje = Math.round((loadedBytes*100)/totalBytes);
_root.barra_mc.gotoAndStop(porcentaje);
target_mc._visible=false;
target_mc.stop();
};

listener.onLoadComplete = function(target_mc) {
_root.barra_mc.removeMovieClip();
target_mc._visible=true;
target_mc.play();
};


precargador_mcl.addListener(listener);

var nochache:String;
nocache = "?nocaching="+random(65000);
precargador_mcl.loadClip("http://página/Arq/foto1.jpg"+ nocache , _root.caja_mc);
};
********************

Bueno, espero haberme explicado bien, y espero que me puedan ayudar con la solución a este probelma, ya que veo que no soy el único que está con esto, lo que si veo es que hay muy poca información que funcione al respecto.

Saludos.

Por miixer

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Ago 2010 10:53 pm
miixer, no se usar bien este método, pero buscando encontré el siguiente link que quizá te pueda ayudar. Pero por lo pronto, lo primero que te diria antes que nada es SIEMPRE utilices rutas relativas, porque tu servidor nunca va a poder ingresar a tu disco local (por cuestiones de seguridad).

Espero que te sirva:
[url=http://www.cristalab.com/tips/resolver-problemas-de-seguridad-al-cargar-imagenes-en-flash-c66619l/][/url]

Saludos!!

Por dori_marlin2004

8 de clabLevel



 

msie8
Citar            
MensajeEscrito el 12 Ago 2010 04:22 pm
Que tal dori!
Trato de ingresar a la página que me dejaste pero imposible, dice error 404.
Me es imposible utilizar rutas relativas, es decir, en la misma carpeta donde tengo el index.html y mi index.swf tengo foto1.JPG, foto2.JPG etc...
si cuando quiero acceder a la foto uno coloco /foto1.JPG directamente no me carga nada, entonces me fuerza a utilizar www.midominio.com.ar/foto1.jpg
Alguna manera de solucionar esto?
Tenés idea de realizar el método de arriba de carga de swf con algun otro método como loadMovie sin que salga ese mensaje de error?

Gracias!,

Saludos.

Por miixer

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Ago 2010 10:37 pm
Quedó mal escrita la direccion... es la siguiente: http://www.cristalab.com/tips/resolver-problemas-de-seguridad-al-cargar-imagenes-en-flash-c66619l

Yo utilizo siempre loadmovie y me funciona perfecto con rutas relativas. Es más, tampoco uso el loadmovieNum ya que hay que saber utilizar bien los niveles... Si queres ver como me funciona el loadmovie, podes ingresar a la pagina que hice para la empresa donde yo trabajo: www.e-magenweb.com.ar

En la seccion "quienes somos", tenes 2 botones: "ventajas" y "clientes". Ambos estan programados para que al hacer click, abran a su derecha una pelicula externa adentro de un mc vacio. Los dos swf externos (ventajas y clientes) los tengo en la misma ruta principal que mi index.html. Te dejo el codigo que le puse a uno de esos dos botones por si te sirve como referencia:

Código ActionScript :

on (release) {
   //Cargar swf externo
   _root.vacio_mc.loadMovie("clientes.swf");
   //Bloquear rutas relativas del swf externo
   _root.vacio_mc._lockroot = true;
   //Deshabilitar el boton
   _root.clientes_btn.enabled = false;
}


La linea que "bloquea las rutas relativas" funciona para que las rutas de tu swf externo no se "mezclen" con las rutas de tu swf principal. Es decir, si en tu pelicula externa tenes un mc que está en el nivel "_root.imagenes.cargador_mc", cuando utilices ese swf en forma local te va a funcionar bien. Sin embargo, cuando lo importas dentro de tu swf principal, el "root" se va a identificar con el _root del swf principal y no el del swf externo, de modo que las rutas cambiarán y tu cargador_mc ya no tendrá la misma ruta y posiblemente no funcione. La funcion _lockroot bloquea el "_root" de tu swf principal para que te funcione bien el swf externo. ¿Se entiende?

Espero que te sirva, saludos!

Por dori_marlin2004

8 de clabLevel



 

msie8
Citar            
MensajeEscrito el 13 Ago 2010 02:40 am
Interesante!, voy a probar con ese método entonces.
Muy buena tu página por cierto.!

Si no vi mal, al precionar "algunos de nuestros clientes" hay un cargador ó preloader que cargar el mc externo, cierto?. Eso es lo que estoy buscando, como poner el cargdor con el método loadMovie, como te comenté anteriormente tengo el código pero para loadClip, pero con este me salta el error de sandbox.
También me interesa saber si tubiste que poner el archivo xml de crossdomain para que no te salten esos errores de "sandbox" o solo con lo que me comentaste fue suficiente?

El punto por el cual empezó todo este problema es por que tengo una presentación para una página la cual pesa demasiado y tengo ese problema que el preloader se ve recién en el 60%, entonces se me ocurrio la manera de cargar esa presentación de manera externa, la cual se podrá ver todo el porcentaje desde el inicio aunque tarde mucho!. utilizando algún método que realmente funcione, el punto es que el método que te escribi atras me tira el error de sandbox, lo cual me deja la presentación por la mitad, totalmente inutil para la página en cuestion.

Desde ya Gracias por tu ayuda
Ya me pongo con ese código a ver que tal va.


Saludos.!

Por miixer

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ago 2010 10:12 pm
Aca mismo en cristalab hay muchos modelos de "preloaded" muy buenos. Por lo general en la pelicula se usa la primer escena para el cargador y ahi se coloca el codigo para: "cuando esté todo cargado ir a la siguiente escena". Es decir, yo el cargador lo coloco dentro de la pelicula externa y en mi sitio web principal al mc vacío sólo le digo "abrir pelicula externa".

El archivo xml de crossdomain nunca lo utilice, conocí su existencia buscando soluciones para tu error. A mi me funciona perfecto con loadmovie. Lo unico que tiene es que el cargador comienza a cargar pero no te va a mostrar nada hasta que llegue al 100%. Si tu pelicula externa tiene un peso excesivo, el cargador irá tan lento proporcional al peso de tu pelicula. Ese método no hace ningún preview.

Espero haber sido de ayuda. Saludos!

Por dori_marlin2004

8 de clabLevel



 

msie8

 

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