Buenas,
Efectivamente, es un problema de seguridad de flash. Un swf no puede cargar datos desde otro dominio (o incluso subdominio, depende de la versión del flash player). Si el swf está en
www.sitio1.com, sólo puede acceder a contenidos que estén dentro de
www.sitio1.com, y va a fallar al intentar comunicarse con, por ejemplo,
www.sitio2.com o incluso subdominio.sitio1.com.
Hay al menos dos formas de modificar esto.
La primera sería que el administrador del server al cual querés acceder te dé permiso a través de un archivo xml crossDomain.xml (el esquema de ese xml se puede encontrar fácil buscándolo en google). En la mayoría de los casos es cuando menos, una solución poco práctica (y además, improbable).
Una segunda opción es usar php (o asp u otro lenguaje de servidor) para que actúe como un "proxy". El script está en tu server y es el que hace el pedido al otro dominio (lo cual no tiene las restricciones de seguridad propias de un swf). Para el swf, sólo te estás comunicando con un recurso del mismo dominio, así que no hay conflictos.
Un ejemplo muy básico (aunque funcional) de este script en php (para usarlo en "producción" convendría agregar al menos algún tipo de manejo de errores):
Código:
<?php
header("Content-type:text/xml");
$str_xml = file_get_contents($_GET['url']);
echo $str_xml;
?>
Simplemente, abre la url que le pases como parámetro, lee el archivo, lo guarda en un string, y lo imprime (con lo cual, el xml original le llega al swf).
El código AS, ligeramente retocado, sería algo así:
Código:
System.useCodepage=true;
var miXML:XML = new XML();
miXML.ignoreWhite=true;
miXML.onLoad = function(success:Boolean) {
if (success) {
trace("Se ha cargado el xml");
trace(miXML);
} else {
trace("No se pudo cargar el xml");
}
};
//var pathProxy = "http://localhost/proxy.php"; // para probar desde flash descomentar esta línea y comentar la siguiente
var pathProxy = "proxy.php";
var rssUrl = "http://miserver.com/xml/lista.xml"; // poner la url del xml a abrir
var url = pathProxy + "?url=" + rssUrl;
miXML.load(url);
Suerte
Califa