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]/
-------------------------------->