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

duplicar mc con AS

Estas en el tema de duplicar mc con AS en el foro de Flash y Actionscript en Foros del Web. hola estoy trabajando en un cargador de noticias a traves de un fichero XML y tengo el siguiente codigo: Código: miXML = new XML() miXML.ignoreWhite ...
  #1 (permalink)  
Antiguo 16/03/2008, 12:26
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
duplicar mc con AS

hola

estoy trabajando en un cargador de noticias a traves de un fichero XML y tengo el siguiente codigo:

Código:
miXML = new XML()
miXML.ignoreWhite = true
miXML.load("noticias.xml")
miXML.ref = this
miXML.onLoad = function(succes){
	if(succes){
		var root = this.firstChild
		nodes = root.childNodes
		for(var i=0; i<nodes.length; i++) {		
			this.ref["titulo_txt"+i].text = nodes[i].attributes.name
			subnodes = nodes[i].childNodes
			this.ref["comentario_txt"+i].text = subnodes[0].firstChild.toString()
			this.ref["imagen_mc"+i].loadMovie(subnodes[1].firstChild.toString())
		}
	} else trace("Error al cargar el documento XML")
}
stop()
si tengo 50 noticias en el documento XML he de crear 50 cajas de texto + 50 mc para alojar las imagenes.

se puede hacer que, segun el numero de noticias del XML se creen x cajas de texto y mc?

milchisimas gracias
  #2 (permalink)  
Antiguo 16/03/2008, 14:05
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
Re: duplicar mc con AS

si se puede... toma como base el nodes.length... un ejemplo rapido seria:

for(var i=0; i<nodes.length; i++) {
mc.duplicateMovieClip("mc"+i, i)
}

O sea, solo se trata de agregar el metodo duplicateMovieClip en el for

Saludos
  #3 (permalink)  
Antiguo 16/03/2008, 14:29
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: duplicar mc con AS

MILMILMILMILGRACIAS

voy a ver si me funciona... en lo de los bucles me lio mucho...
  #4 (permalink)  
Antiguo 16/03/2008, 14:59
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: duplicar mc con AS

tengo los tres mc originales (los 0's) en el escenario, en una posicion determinada.
he añadido tres lineas que me duplicaran los mc dependiendo de los datos del XML.


Código:
miXML = new XML()
miXML.ignoreWhite = true
miXML.load("noticias.xml")
miXML.ref = this
miXML.onLoad = function(succes){
	if(succes){
		var root = this.firstChild
		nodes = root.childNodes
		for(var i=0; i<nodes.length; i++) {
                        titulo_txt0.duplicateMovieClip("titulo_txt"+i, i)
			comentario_txt0.duplicateMovieClip("comentario_txt"+i, i)
			imagen_mc0.duplicateMovieClip("imagen_mc"+i, i)		
			this.ref["titulo_txt"+i].text = nodes[i].attributes.name
			subnodes = nodes[i].childNodes
			this.ref["comentario_txt"+i].text = subnodes[0].firstChild.toString()
			this.ref["imagen_mc"+i].loadMovie(subnodes[1].firstChild.toString())
		}
	} else trace("Error al cargar el documento XML")
}
stop();
pero como voy variando las _X e _Y? porque tendre que hacerlo tambien dentro del for.
primero definiria una variable que seria la distancia+ a la que quiero que vayan situandose respecto del anterior. pero no se como hacerlo...

seria mas o menos asi?

Código:
var dist_y = 130;

//...y dentro del for

this.ref["comentario_txt"+i]._y = comentario_txt0._y + dist_y * i
de todas formas, estos codigos no me funcionan...

ayuda, plis
  #5 (permalink)  
Antiguo 16/03/2008, 15:02
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: duplicar mc con AS

me estoy haciendo un lio...

en otro foro me acaban de dar una solucion menos "liante".

voy a probar y ya os digo...
  #6 (permalink)  
Antiguo 16/03/2008, 15:57
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: duplicar mc con AS

no me funciona lo del otro foro...

he probado con esto

Código:
for(var i=0; i<nodes.length; i++) {   
         titulo_txt0.duplicateMovieClip("titol_txt"+i, i, {_x:0, _y:i*131})
         comentario_txt0.duplicateMovieClip("comentari_txt"+i, i, {_x:0, _y:i*131})
         imagen_mc0.duplicateMovieClip("imatge_mc"+i, i, {_x:0, _y:i*131})
         this.ref["titulo_txt"+i].text = nodes[i].attributes.name
         subnodes = nodes[i].childNodes
         this.ref["comentario_txt"+i].text = subnodes[0].firstChild.toString()
         this.ref["imagen_mc"+i].loadMovie(subnodes[1].firstChild.toString())
      }
pero lo que pasa es que cuando hay solo una noticia aparece todo en su sitio. si hay dos, en la segunda noticia solo me aparece la foto en su sistio y el texto no aparece. si hay tres noticias, tambien aparece solo la foto pero me aparece al doble de la distancia a la que deberia estar.

por que ocurre esto?

heeeelp
  #7 (permalink)  
Antiguo 16/03/2008, 16:16
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: duplicar mc con AS

ya se porque ocurre...

estoy utilizando duplicatemovieclip para duplicar un campo de texto dinamico...

pero no se porque se me desplazan tanto las imagenes... la 3, 4, 5,... ya aparecen bien distribuidas. solo hay un salto entre la 2 y la 3.
  #8 (permalink)  
Antiguo 16/03/2008, 21:28
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
Re: duplicar mc con AS

correcto, la idea es que dupliques un movieclip, y no los textos dinamicos.... podrias hacer algo asi como un movieclip que sea una caja (por ejemplo), que sirva como contenedor, y tambien poner los campos de texto dinamicos en ese movieclip.... para variar la posicion _y, te pongo un ejemplo tambien rapido:

Código:
for (var i:Number = 0; i<nodes.length; i++) {
	mc.duplicateMovieClip("mc"+i,i);
	this["mc"+i]._y = mc._y+(i*(mc._height+1));
}
mc._visible=false

Última edición por Ludwingg; 16/03/2008 a las 21:36
  #9 (permalink)  
Antiguo 17/03/2008, 02:18
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: duplicar mc con AS

lo tengo!! pongo el mc noticias en el escenario y...

Código:
for(var i=0; i<nodes.length; i++) {   
         noticias.duplicateMovieClip("noticias"+i, i, {_x:0, _y:i*131})
         this.ref["noticias"+i].titulo_txt.text = nodes[i].attributes.name
         subnodes = nodes[i].childNodes
         this.ref["noticias"+i].comentario_txt.text = subnodes[0].firstChild.toString()
         this.ref["noticias"+i].imagen_mc.loadMovie(subnodes[1].firstChild.toString())
      }
ahora me queda un problema... entre la segunda y tercera noticias me aparece un hueco en el que cabria otra noticia.
alguien sabe porque me ocurre esto?
  #10 (permalink)  
Antiguo 17/03/2008, 02:20
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: duplicar mc con AS

Cita:
Iniciado por kaquna Ver Mensaje
lo tengo!! pongo el mc noticias en el escenario y...

Código:
for(var i=0; i<nodes.length; i++) {   
         noticias.duplicateMovieClip("noticias"+i, i, {_x:0, _y:i*131})
         this.ref["noticias"+i].titulo_txt.text = nodes[i].attributes.name
         subnodes = nodes[i].childNodes
         this.ref["noticias"+i].comentario_txt.text = subnodes[0].firstChild.toString()
         this.ref["noticias"+i].imagen_mc.loadMovie(subnodes[1].firstChild.toString())
      }
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 23:59.