Foros Programación Cliente

Duplicar MC tras carga de XML básico en AS3

6 6 Respuestas Lunes 25 de mayo, 2009
hola a todos, cada vez creo que soy más tonto, me pongo a escribir en as3 y no me sale nada grrrrrr

en fin

he cargado un xml básico

<?xml version="1.0" encoding="utf-8"?>
<datos>
<registro nombre="el que sea" nombre_xml="galeria1.xml" />
<registro nombre="otro" nombre_xml="galeria2.xml" />
<registro nombre="mas" nombre_xml="galeria3.xml" />
</datos>


Una vez cargado le paso el lenght a otra función para que me duplique movieclips

var contenedor:MovieClip = new MovieClip();
addChild(contenedor);

function initClips(total):void {
var c:MovieClip;
for (var i:Number = 0; i< total; i++) {
trace('hola');
c = new boton_galerias();
c.link_xml= xmlData.registro[i].@nombre_xml
trace (link_xml)//aqui me lo traza bien pero luego no lo pasa al over
c.x=100*i;
c.outPut_txt.text=xmlData.registro[i].@nombre;
c.addEventListener(MouseEvent.MOUSE_OVER, overBoton);
c.addEventListener(MouseEvent.MOUSE_OUT, outBoton);
contenedor.addChild(c);
}
}
function overBoton(e:MouseEvent):void {

TweenLite.to(e.target, .3, {alpha:.8});//alpha out the thumbnails
//trace(event.target);
trace(e.target.link_xml); //no funciona grrrr
}
function outBoton(e:MouseEvent):void {
TweenLite.to(e.target, .3, {alpha:1});//alpha out the thumbnails
trace(e.target.name);
}



El mc está vinculado desde la biblioteca y se llama boton_galerias, contiene un campo de texto dinámico y un movieclip de fondo.

Primer problema, el over me lo hace tanto sobre el mc como sobre el textfield, con lo cual a veces me baja el alfa del fondo y otras del textfield, no puedo hacer que el over sea sobre todo el mc y que me haga un alfa de todo, algo como .parent. ....

Segundo problema, no consigo pasarle la variable link_txt que es la que hará que al clicar cargue otro xml

grrrr, alguien puede decirme un poco que aberraciones estoy cometiendo en el código

muchas gracias
david alvira
-----------------------------
www.davidalvira.com
Registrado desde 07/01/03
Número de posts: 123
  • Avatar de dazao dazao Registrado desde 07/01/03 / Número de posts: 123
    Al final lo he solucionado asi, que seguro que es cutre, asi que si alguien puede iluminarme

    var contenedor:MovieClip = new MovieClip();
    addChild(contenedor);
    import net.wildwinter.Callback
    function initClips(este):void {
    trace('este ' + xmlData.registro[1].@nombre_xml);

    var c:MovieClip;
    for (var i:Number = 0; i< este; i++) {
    trace('hola');
    c = new boton_galerias();
    var link_xml= xmlData.registro[i].@nombre_xml
    var destino=c.mc;
    c.x=100*i;
    c.mc.outPut_txt.text=xmlData.registro[i].@nombre;

    c.addEventListener(MouseEvent.MOUSE_OVER, Callback.create(overBoton,destino));
    c.addEventListener(MouseEvent.MOUSE_OUT, Callback.create(outBoton,destino));
    c.addEventListener(MouseEvent.CLICK, Callback.create(pressBoton,link_xml));

    contenedor.addChild(c);
    }
    }
    function overBoton(e:MouseEvent,dest):void {
    TweenLite.to(dest, .3, {alpha:.8});//alpha out the thumbnails
    trace(dest);

    }
    function outBoton(e:MouseEvent,dest):void {
    TweenLite.to(dest, .3, {alpha:1});//alpha out the thumbnails
    trace(dest);

    }

    function pressBoton(e:MouseEvent,dest):void {

    trace(dest);

    }


    gracias
    david alvira
    -----------------------------
    www.davidalvira.com
    Publicado hace 4 años
  • Avatar de oskitar oskitar Registrado desde 02/11/04 / Número de posts: 251
    embebe las fuentes para el campo de texto.
    Los campos de texto dinámico con fuentes sin embeber + alpha dan problemas. aquí dicen algo http://www.kirupa.com/forum/showthread.php?t=268284
    busca por el google para más referencias.
    Publicado hace 4 años
  • Avatar de dazao dazao Registrado desde 07/01/03 / Número de posts: 123
    pero ya estaban embebidas _D
    david alvira
    -----------------------------
    www.davidalvira.com
    Publicado hace 4 años
  • Avatar de dagi3d dagi3d Registrado desde 13/12/03 / Número de posts: 1054
    ¿todo el chiringuito lo estás montando cuando se llama el método que tú le indicas al añadir el listener Event.COMPLETE?
    lo digo porque no si no, no hay garantía alguna de que cuando llegues a ese punto el xml esté cargado correctamente
    Publicado hace 4 años
  • Avatar de dazao dazao Registrado desde 07/01/03 / Número de posts: 123
    si claro se le llama cuando el xml se ha cargado :D
    david alvira
    -----------------------------
    www.davidalvira.com
    Publicado hace 4 años
  • Avatar de Nueve Nueve Registrado desde 15/02/06 / Número de posts: 16
    Hola,
    1. Esto se debe a la nueva forma en la que se propagan los eventos en as3 , para algunas cosas mola y para otras es un coñazo :)
    Escribe c.mouseChildren = false; y quizá te interese también ponerle c.buttonMode = true; con eso te sale la manita.
    2. Imagino que según lo tienes ahora cada vez que pasa por el bucle te la va sobreescribiendo y debería guardar siempre el último.
    Mete la variable var c:MovieClip; dentro del bucle.

    Publicado hace 4 años