Foros del Web » Creando para Internet » Flash y Actionscript »

mostrar XML

Estas en el tema de mostrar XML en el foro de Flash y Actionscript en Foros del Web. Buenas, estoy haciendo un lista en flash desde un xml. Con el codigo que vengo haciendolo hasta ahora (solo mostrando los ID en TextFields dinamicos) ...
  #1 (permalink)  
Antiguo 19/02/2008, 10:03
Avatar de kesioo  
Fecha de Ingreso: enero-2007
Ubicación: Capital Federal, Argentina
Mensajes: 137
Antigüedad: 10 años, 10 meses
Puntos: 2
mostrar XML

Buenas, estoy haciendo un lista en flash desde un xml.
Con el codigo que vengo haciendolo hasta ahora (solo mostrando los ID en TextFields dinamicos) los muestra y todo, el tema es que yo quiero que el mc en donde estaran los diferentes campos dinamicos (para ID, Nombre, etc) esten dentro de un mc mas grande (content_mc) para poder hacer un scroll..

Codigo:

stop();
cont = _root.createEmptyMovieClip("content_mc", _root.getNextHighestDepth());
cont._x = 4;
cont._y = 45;
cont._width = 472;
cont.setMask(_root.mask_mc);


// Para no tener problemas con las tildes
// y otros caracteres especiales
System.useCodepage = true;

// Evitamos que Flash interprete
// los saltos de línea del xml como nodos en blanco
XML.prototype.ignoreWhite = true;

// definimos el objeto XML
datos_xml = new XML();
// Cuando se carguen los datos ejecutaremos
// la función cargarDatos
datos_xml.onLoad = cargarDatos;
// Definimos el array donde almacenaremos
// los datos de los coches
obras_array = new Array();
// la función cargarDatos se invoca cuando
// hago la llamada a datos_xml.load("obras.xml");
// al final del código
function cargarDatos(exito) {
// si el xml se ha cargado bien...
if (exito) {
// en el array obrasCargadas meto los
// nodos <obra> de segundo nivel, pero
// como todavía no están en el formato
// que nos interesa, nos lo vamos a recorrer
// y cada elemento lo pasamos como parámetro
// a la función pasar_a_array que deja la
// información a nuestro gusto
obrasCargadas = this.firstChild.childNodes;
for (var k = 0; obrasCargadas[k]; k++) {
pasar_a_array(obrasCargadas[k]);
}
// una vez convertidos los datos, eliminamos
// los objetos que ya no vamos a necesitar, así
// liberamos memoria
delete obrasCargadas;
delete datos_xml;
// muestro las obras
verObras();
} else {
// si no se a cargado bien...
// aquí las sentencias en caso de error
// durante la carga
trace("fallo en la carga");
}
}
// esta función es la que va ha convertir
// cada nodo en un objeto con propiedades
// más fácil de controlar. Se invoca
// desde la función cargarDatos dentro del for
function pasar_a_array(nodo) {
// defino el objeto
var objetoObra = new Object();
// atributos->matriz de atributos del nodo
var atributos = nodo.attributes;

objetoObra.nombre = atributos.nombre;
objetoObra.comitente = atributos.comitente;
objetoObra.ubicacion = atributos.ubicacion;
objetoObra.o_year = Number(atributos.o_year);
objetoObra.id = Number(atributos.id);
// finalmente, añado el objeto al array
obras_array.push(objetoObra);
}

function mostrarID(j:Number) {
var num = j + 1;
var tf = new TextFormat();
tf.size =10;
tf.color=rgb;
tf.font="Arial";
obj=_root.createEmptyMovieClip("Obra"+num, _root.getNextHighestDepth());
obj.createTextField("txt", this.getNextHighestDepth(),0,0,472,20);

obj.txt.autoSize;
obj.txt.selectable=false;
obj.txt.setNewTextFormat(tf);
obj.txt.text= obras_array[j].id;
obj.txt.embedFonts=true;
return obj;
}
function verObras() {
obras = "";
for (var i = 0; obras_array[i]; i++) {
obra= mostrarID(i);
obra._x=2;
obra._y=45+(20*i);
}
}
datos_xml.load("obras.xml");
stop();


el tema es que desaparece todo cuando modifico la parte en negrita :
obj=_root.content_mc.createEmptyMovieClip("Obra"+num, _root.content_mc.getNextHighestDepth());
obj.createTextField("txt", this.getNextHighestDepth(),0,0,472,20);

alguien sabe adonde esta mi error?
saludos!
  #2 (permalink)  
Antiguo 20/02/2008, 11:44
Avatar de kesioo  
Fecha de Ingreso: enero-2007
Ubicación: Capital Federal, Argentina
Mensajes: 137
Antigüedad: 10 años, 10 meses
Puntos: 2
Re: mostrar XML

alguien que me pueda dar una manito?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:50.