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

A ver quien puede con él...

Estas en el tema de A ver quien puede con él... en el foro de Flash y Actionscript en Foros del Web. Hola los que me conocen saben que no soy experto ni mucho menos. Hoy un amigo me pasó este código de una galería de imágenes ...
  #1 (permalink)  
Antiguo 14/12/2007, 19:25
 
Fecha de Ingreso: agosto-2006
Mensajes: 32
Antigüedad: 17 años, 8 meses
Puntos: 0
A ver quien puede con él...

Hola los que me conocen saben que no soy experto ni mucho menos.
Hoy un amigo me pasó este código de una galería de imágenes que tira de un xml, aparentemente funciona bien. Pero el problema es el siguiente:

Creo una película de flash y funciona bien pero si cargo esta película, llamandola desde otra, solo se ve una foto y el pequeño navegador que está en el documento desaparece, he estado toqueteando un poco y he podido comprobar que haciendo un cambio de _root por this (en la funcion mostrar que está al final del código) entonces carga el pequeño navegador pero no las fotos. En fin supongo que necesitais el codigo . Al final he marcado con amarillo la funcion Mostrar que es la que creo que no se adapta a mi interes.
para probar el código aclaro que en la escena hay una instancia de un clip de pelic (una peq. flecha) que tiene por etiqueta "pre" y otra que tiene por etiqueta "nex", luego hay un campo de texto dinámico que tiene por nombre de etiqueta "t" y otro más que no tiene nombre.
desde ya gracias
Aquí va:

num=1
master_mc =_root.createEmptyMovieClip("conten_1",4);
master_mc._x = 0;
master_mc._y = 0;
xml = new XML()
xml.ignoreWhite=true
xml.onLoad=function(ok){
if (ok){
tot=xml.firstChild.childNodes.length
mostrar()
}else
trace ("error")
}
xml.load("imagenes.xml")
pre.onRelease=function(){
if (num==0){
num=tot-1
mostrar()
}else{
num--
mostrar()
}
}

nex.onRelease=function(){
if (num==tot-1){
num=0
mostrar()
}

else{
num++
mostrar()
}
}


function mostrar(){

this._root.conten_1.loadMovie(xml.firstChild.child Nodes[num].attributes.ur)

des=xml.firstChild.childNodes[num].attributes.titulo

t.text=num+1 + "/" + tot
}
  #2 (permalink)  
Antiguo 14/12/2007, 19:41
 
Fecha de Ingreso: junio-2006
Mensajes: 270
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: A ver quien puede con él...

Cita:
this._root.
El _root es el root para todos.
Luego, el loadMovie que conozco es: loadMovie(url:String, target:Object). Es decir, que bien pones _root.conten_1.loadMovie(xml.firstChild.child Nodes[num].attributes.ur, this) o pones loadMovie(xml.firstChild.child Nodes[num].attributes.ur, _root.conten_1)
A lo mejor el flash te lo coge como bueno no pasarle el target, y te coge this si no pones nada
En cuanto al problema en si, pues con flash generalmente se necesita mas que el codigo. Si programas todo con codigo, pues si que se ve, pero si metes clips en el escenario, si los clips tienen su propio codigo, y el coddigo que publicas es de una escena...
Yo lo consejos que te puedo dar es que miras bien las rutas. Cuando estás en un clip o en un escenario, los clips que tengas dentro los llamas con el nombre de instancio simplemente (no te hace falta poner this.). Y si tienes cosas dentro de un clip, pues clip.cosa_dentro_del_clip
  #3 (permalink)  
Antiguo 15/12/2007, 03:29
 
Fecha de Ingreso: agosto-2006
Mensajes: 32
Antigüedad: 17 años, 8 meses
Puntos: 0
De acuerdo Re: A ver quien puede con él...

Ok con el codigo dispuesto como tu lo pones no funciona"en mi caso" correctamente, pero he decirte que el fallo estaba en la carga, así que simplemente había que comenzar cargando el mc en this al principio del código. Quizás si no pongo nada (creo que me lo habías sugerido) hace lo mismo.
Bueno pongo el código así si alguier lo quiere utilizar lo puede hacer.
Gracias Darkxerox

num=1
master_mc =this.createEmptyMovieClip("conten_1",4);
master_mc._x = 0;
master_mc._y = 0;
xml = new XML()
xml.ignoreWhite=true
xml.onLoad=function(ok){
if (ok){
tot=xml.firstChild.childNodes.length
mostrar()
}else
trace ("error")
}
xml.load("imagenes.xml")
pre.onRelease=function(){
if (num==0){
num=tot-1
mostrar()
}else{
num--
mostrar()
}
}

nex.onRelease=function(){
if (num==tot-1){
num=0
mostrar()
}

else{
num++
mostrar()
}
}


function mostrar(){

this.conten_1.loadMovie(xml.firstChild.childNodes[num].attributes.ur)
// this.conten_1.loadMovie(xml.firstChild.childNodes[num].attributes.ur)
des=xml.firstChild.childNodes[num].attributes.titulo

t.text=num+1 + "/" + tot

}

//--------------------------------------------------------
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 22:48.