Lo que te pasa es un viejo 'bug' de flash. Cuando utilizas loadMovie en
un MC que tiene programaci�n asignada, ya sean m�todos, propiedades o
cualquier otro elemento la programaci�n se pierde cuando se carga el
nuevo contenido. S�lo se pierde si se utilizan m�todos de eventos, como
bien has visto si utilizas eventos mediante onClipEvent todo functiona
bi�n. Esto es, dicho en plata, un putada para mantener el c�digo
orientado a objetos.

Hay varios rodeos y soluciones para solventarlo:
        - Asignarle la programaci�n una vez se ha terminado la carga.
Esto lo puedes hacer comprobando, con enterFrame o con setInterval, si
se ha terminado de cargar el mc. (if(my_mc.bytesLoaded ==
my_mc.bytesTotal).
        
        - Otra posibilidad, y esta es mi preferida, es meter dentro del
mc en cuesti�n otro mc. En este segundo mc es donde cargas los swf o
jpeg's que te interese. En el primer mc asignas la programaci�n. Una
posble implementaci�n con una clase vendr�a a ser algo as�: 

<code>
        function ExtendedMC() {
                this.id = new Number();
                this.content_mc =
this.createEmptyMovieClip("content_mc",0);
        }

        ExtendedMC.prototype = new MovieClip();
        
        ExtendedMC.prototype.loadMovie = function(movieToLoad) {
                this.content_mc.loadMovie(movieToLoad);
                this.id = setInterval(this,"isLoaded",100);
        }

        ExtendedMC.prototype.isLoaded = function() {
                if(this.content_mc.getBytesLoaded() ==
this.content_mc.getBytesTotal() &&
                   this.content_mc.getBytesTotal() > 4) {
                        clearInterval(this.id);
                        this.onLoad.call(this);
                }
        }

        Object.registerClass("hola",ExtendedMC);
<code>

El codigo anterior es suponiendo que el mc que quieres registrar tiene
nombre de exportaci�n 'hola'. Para usarlo solo tienes que hacer:

<code>
        my_mc.loadMovie("s.swf");
        my_mc.onLoad = function() {
                trace("cargado");
        }       
</code>

Donde my_mc es una instancia de 'hola' en el escenario. Cuando s.swf se
haya cargado saltar� el evento onLoad. 
Aplicando esto a tu problema todo quedar� solventado :-)

Lo que tendr�s que hacer es registrar _root.v_prod_moto como instancia
de ExtendedMC...

Si no te sale ya sabes :-)

Saludos a todos
Xavi Beumala
http://www.5dms.com
http://www.code4net.com

> -----Mensaje original-----
> De: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] En nombre de Oriol .:Anfibic:.
> Enviado el: lunes, 01 de marzo de 2004 10:50
> Para: [EMAIL PROTECTED]
> Asunto: [ASNativos] orden en el c�digo
> 
> 
> Hola, estoy intentando ordenar el codigo en el mx para tenerlo lo mas
> junto posible, pero me encuentro con lo siguiente: imaginafros una
> aplicaci�n con fichas, donde tienes una ficha resumida y una 
> ampliada, y
> quieres que cuando pulses la opcion "+ info" en la ficha reducida se
> abra la ampliada. Reciclo la info de la ficha reducida y la paso a la
> grande, y adem�s mediante asp pido la info extra que me falta.
> 
> Hasta ah� todo correcto, el problema es que desde la funcion 
> que abre la
> ficha grande intento pasarle al textarea y al loader lo que tiene que
> cargar y no me hace caso. Lo �nico que me funciona es poner el el mc
> ficha grane un texto en el evento "onload", lo cual me obliga 
> a tener el
> c�digo desordenadissimo. pego el c�digo aver si alguien tiene alguna
> idea.
> 
> function muestraFichaProducto(nombreVentana) {
>       _root.swap++;
>       duplicateMovieClip(_root.v_prod_moto, "v_"+nombreVentana,
> _root.swap);
>       var ventana = _root["v_"+nombreVentana];
>       ventana.familia = _root[nombreVentana].familia;
>       ventana.producto = _root[nombreVentana].producto;
>       ventana.tituloVentana = _root[nombreVentana].familia+":
> "+_root[nombreVentana].producto;
>       ventana.descripcion = _root[nombreVentana].descripcion;
>       ventana.texto.text="esto es una prueba aqu� el flash pasa de mi
> puta cara"
>       ventana.precio = _root[nombreVentana].precio;
>       
> ventana.loader_foto.load("fotos/"+_root[nombreVentana].numfoto_1);
>       if (_root[nombreVentana].numfoto_2 == "" or
> _root[nombreVentana].numfoto_2 == null) {
>               ventana.b_foto._visible = 0;
>               ventana.b_foto.enabled = false;
>       } else {
>               ventana.numfoto_2 = _root[nombreVentana].numfoto_2;
>       }
>       ventana._x = _root._xmouse;
>       ventana._y = _root._ymouse;
> }
> 
> las lineas 
> ventana.loader_foto.load("fotos/"+_root[nombreVentana].numfoto_1);
> ventana.texto.text="esto es una prueba aqu� el flash pasa de mi puta
> cara"
> 
> no chutan, lo cual me obliga a hacer lo siguiente en el mc, (desorden
> total de c�digo)
> onClipEvent (load) {
>       texto.text = descripcion;
>       loader_foto.load("fotos/"+numfoto_1);
> }
> 
> gracias por adelantado!
> Oriol
> 
> 
> 
> 
> 
> <!-------------------------------
> Lista ASNativos:
> subscripciones/desubscripciones
> http://www.sidedev.net/asnativos
> Archivos:
> sin busqueda (+actualizado):
> http://www.sidedev.net/archive
> con busqueda (-actualizado)
> http://www.mail-archive.com/[EMAIL PROTECTED]/
> -------------------------------->
> 

<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
Archivos:
sin busqueda (+actualizado):
http://www.sidedev.net/archive
con busqueda (-actualizado)
http://www.mail-archive.com/[EMAIL PROTECTED]/
-------------------------------->

Responder a