A continuación una lista de trucos que se deben utilizar para leer archivos xml desde flash, para evitar problemas de
interpretación de dato, problemas con cache, codificaciones, etc.
- Crear una estructura de navegación teniendo en cuenta que después hay que realizar un algoritmo que recorra la estructura, personalmente no recomiendo tener muchos niveles de profundidad, y utilizar atributos para evitar tener que crear niveles adicionales. Si utilizamos atributos, actualizar el archivo xml luego de realizar el algoritmo de navegación no afecta mucho la programación que ya hemos realizado.
Esta recomendación aplica para programación con lectura de xml en as 2, ya que la lectura desde as3, es mucho más fácil de realizar. Acá se puede ver un excelente tutorial.
- Otro asunto con el que nos podemos encontrar, tener que leer datos que contienen carácteres con acentos (español) , para poder interpretar bien estos archivos desde flash, es necesario tener en cuenta varias cosas:
El archivo xml, se recomienda que este codificado con utf-8, para procurar que los carácteres se interpreten correctamente.
También es muy importante, poner la información de los tags xml, dentro de un campo cdata, así:
<![CDATA[información con acentos aquí]]> , ver más info acá.
Es recomendable utilizar dentro de flash una estructura similar a la siguiente para realizar la lectura de los xml:
Actionscript:
-
System.useCodePage = true;
-
//^ Le decimos a flash que activé el codePage, esto es para que interprete bien los caracteres especiales.
-
-
function okSend()
-
{
-
-
sal_registro = new LoadVars();
-
int_respuesta = new XML();
-
int_respuesta.ignoreWhite = true;//Con esta línea evitamos los espacios y garantizamos una lectura correcta
-
int_respuesta.onLoad = function(success:Boolean) {
-
if (success) {
-
// error=false todo bien
-
if(this.error.charAt(0)=='f')
-
{
-
-
}
-
else
-
{
-
-
}
-
} else {
-
-
}
-
};
-
-
url = "script.php";
-
sal_registro.nombre = t1.text;
-
sal_registro.mail = t2.text;
-
sal_registro.rand = Math.random();
-
sal_registro.sendAndLoad(url,int_respuesta,"POST");
-
}
Es importante resaltar:
Actionscript:
-
System.useCodePage = true;
Esta instrucción la empleo la mayoría de veces, pues casí siempre realizo lectura de datos con ñs, tíldes, etc. Además la pongo por precaución aunque el proyecto parezca no tener palabras con acentos.
Actionscript:
-
int_respuesta.ignoreWhite = true;
Esta instrucción la utilizó principalmente, cuando leo datos desde un serlvet o script que genera el archivo xml dinámicamente.
Actionscript:
-
sal_registro.rand = Math.random();
Esta línea es escencial, para los casos donde necesitamos tener el archivo xml actualizado en todo momento. Porque he tenido inconvenientes en aplicaciones que actualizan información constantemente desde un xml, pero resulta que estos archivos quedan en cache y si hacemos una petición, este toma el archivo directamente de la cache y no desde el servidor.
Por tanto al enviar un parámetro adicional con un número aleatorio, este siempre va a pedir los datos nuevos del servidor.
Cuando programamos interactividad con el servidor, es importante, leer la estructura xml, cruda, es decir evitar el uso de encabezados xml, o si los necesitamos poner, tener en cuenta que se codifiqué con utf-8.
Por útlimo, les dejo el programa gratuito que empleo para mirar la información de un archivo xml, este me permite identar automaticamente un archivo entre otros benecifios.

Se llama Xml Marker, se puede descargar aquí.
Escrito por @lasmovies
\\ tags: as, AS2, as2, AS3, flash, symboclick, xml, xml marker