Tengo un problema con un arreglo dentro de una clase a la cual llamo Sonidos, lo que hace esta clase hasta ahorita es simplemente crear 2 objetos del tipo sound y uno XML, el objeto XML se responsabiliza de cargar el documento sonidos.xml el cual contiene las rutas de los clips de audio que quiero cargar con los objetos de sonido. Dichas rutas las quiero almacenar en un Array llamado RutaSonido, todo va bien hasta el momento en que obtengo los datos del XML, ya que en el Array me guarda undefined. Se que el documento se carga bien y saco los datos correctamente pues puse un trace directo en el dato y me lo despliega bien, pero si lo igualo al array, nomas no quiere. Alguien sabe por que?, otra cosa si el Array lo saco del evento onLoad del XML le puedo asignar valores y me los respeta, pero nomas lo meto al evento y me guarda lo mismo.
Les pongo el codigo de lo que llevo hecho
sonidos.xml
Código :
<?xml version="1.0" encoding="iso-8859-1"?> <sonidos> <ruta>sonidos/error.mp3</ruta> <ruta>sonidos/correcto.mp3</ruta> </sonidos>
prueba_clase.fla - Frame 1
Código :
import Sonidos; var Efectos:Sonidos = new Sonidos();
Sonidos.as
Código :
class Sonidos{
// Declaracion de objetos, variables y constantes
var sndError:Sound;
var sndCorrecto:Sound;
var xmlSonidos:XML;
var RutaSonido:Array;
var URL_XML="xml/sonidos.xml";
// Funcion a ejecutar al crear un objeto del tipo Sonidos
function Sonidos(){
sndError = new Sound();
sndCorrecto = new Sound();
RutaSonido = new Array();
CargarRutas(URL_XML);
};
function CargarRutas(strUrl:String){
xmlSonidos = new XML();
xmlSonidos.ignoreWhite = true;
RutaSonido.removeAll();
xmlSonidos.onLoad = function(exito){
if(exito){
var NumRutas:Number = this.firstChild.childNodes.length;
for(var i=0;i<NumRutas;i++){
RutaSonido[i]=this.firstChild.childNodes[i].firstChild.nodeValue;
trace(RutaSonido[i]);
}
}
}
xmlSonidos.load(strUrl);
};
}y en la ventanita de output me pone
Código :
undefined undefined
Gracias por su ayuda, nos leeremos pronto
