Comunidad de diseño web y desarrollo en internet online

LoadMovie y attachMovie

Citar            
MensajeEscrito el 05 Mar 2008 12:58 pm
Hola a todos!

Alguien sabe como solucionar el tremendo problema de Flash que provoca que al cargar con loadMovie un swf que usa attachMovie, no funcione?

Gracias!

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 05 Mar 2008 04:21 pm
TIC TAC TIC TAC...

Nadie sabe...?

Lol!

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 05 Mar 2008 08:52 pm
exactamente QUE no te funciona?

Por penHolder

Claber

4661 de clabLevel

39 tutoriales
2 articulos

Genero:Masculino   Premio_Secretos

| mdz |

firefox
Citar            
MensajeEscrito el 06 Mar 2008 07:27 am
Wenas penHolder,

Te explico. Tengo un fla con un menú infinito dinámico, que usa attachMovie para mandar al escenario los botones. Hasta aquí todo bien. Pero quiero cargar ese swf generado en otro documento mediante loadMovie, lo que es sencillo y siempre resulta, PERO, de forma incomprensible, no funciona. El swf contenedor carga todo lo que hay en el swf contenido, salvo aquello que attachMovie llama (en este caso el menú dinámico infinito). Al buscar por internet he averiguado que es un fallo de Flash (o eso dicen), pero nadie parece tener una solución.

Y eso es todo, que no es poco.

Un saludo

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Mar 2008 12:19 pm
Ya veo que la cosa tiene miga...

Os pongo mi código a ver si alguien da con la solución!

// Cantidad de botones
cantidad = 10;
// Ancho del botón
ancho = 40;
// Distancia entre botón y botón
espacio = ancho + 80;
// Ancho total de la serie de botones
limite = cantidad * espacio;

for(i=0; i<cantidad; i++) {
//cargo dinámicamente los distintos botones
_root.attachMovie("mc_boton"+i,"mc_boton"+i,10+i);
ref = _root["mc_boton"+i];
// Posición Vertical (_y)
ref._y = 320;
// Posición Horizontal (_x) + margen (20px)
ref._x = ( espacio * i -225) +10;
}
vel = 0;

//limito el mouse
w = 600
h = 250
onEnterFrame = function() {
vel = int(((_xmouse - 210)/-210) * 25);

if(_xmouse > w) {
vel = false
}
if(_ymouse < h) {
vel = false
}
}


//intento crear una máscara para limitar el menú infinito
//"mc_boton"+i.setMask(emcmask);
mc_boton0.setMask(emcmask);
mc_boton1.setMask(emcmask2);
mc_boton2.setMask(emcmask3);
mc_boton3.setMask(emcmask4);
mc_boton4.setMask(emcmask5);
mc_boton5.setMask(emcmask6);
mc_boton6.setMask(emcmask7);
mc_boton7.setMask(emcmask8);
mc_boton8.setMask(emcmask9);
mc_boton9.setMask(emcmask10);

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Mar 2008 05:19 pm
Has probado con peliculacargada.lockroot=true?

Por mcapu

181 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Mar 2008 05:38 pm
Pues... no.

Y, la verdad, no sé cómo se utiliza lo que me expones.

Me lo puedes explicar un poco más please?

Gracias!

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Mar 2008 05:43 pm
Sí, hombre.
Y perdón, porque le puse lockroot cuando es _lockroot.
Lo que hace esta propiedad es que bloque la llamada al _level0, es decir, si la película B está dentro de A, al llamar al _root de B te responderá con el _level0 de A. Para evitar eso, se le coloca esta propiedad en el primer fotograma:

Código :

this._lockroot=true

Pruébalo (en el primer fotograma de B)

Por mcapu

181 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Mar 2008 07:20 am
Valeeee...! Gracias por la aclaración mcapu. Creo que estoy más cerca de la respuesta, pero aún no funciona. Sí que _lockroot consigue que se llame a los botones al escenario pero no se aplica el código que los hace moverse ni el que los oculta tras una máscara al llegar a un límite determinado.

Voy a rebuscar a ver si encuentro la solución. Si alguien la encuentra antes que me lo diga please!

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Mar 2008 01:45 pm
Nada de nada!

Alguien sabría de alguna otra manera para que funcionara? Algo que sustituya al attachMovie por ejemplo?

Misteri, emocio...

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Mar 2008 03:28 pm
A ver, alma de cántaro jeje. Tienes que meter el código que los hace moverse en un enterframe o un set interval o lo que sea que le haga repetirse. Si no, solamente se ejecuta una vez. No he probado las máscaras:

Código :

// Cantidad de botones
cantidad = 10;
// Ancho del botón
ancho = 40;
// Distancia entre botón y botón
espacio = ancho + 80;
// Ancho total de la serie de botones
limite = cantidad * espacio;

for(i=0; i<cantidad; i++) {
//cargo dinámicamente los distintos botones
_root.attachMovie("mc_boton","mc_boton"+i,10+i);
ref = _root["mc_boton"+i];
// Posición Vertical (_y)
ref._y = 320;
// Posición Horizontal (_x) + margen (20px)
ref._x = ( espacio * i) +10;

vel = 0;

//limito el mouse
w = 600
h = 250
ref.onEnterFrame = function() {
vel = int(((_xmouse - 210)/-210) * 25);
this._x+=vel
if(_xmouse > w) {
vel = false
}
if(_ymouse < h) {
vel = false
}
}
}

Por mcapu

181 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Mar 2008 08:09 am
Estoooo....

Agradezco la ayuda, de verdad mcapu ("alma de cántaro"! jejeje, hacía tiempo que no escuchaba esta expresión), pero creo que ya me he perdido. No soy precisamente un habitual del Action Script ni de Flash. Me puedes explicar con más detalles los pasos a seguir de tu propuesta?

Muchas gracias!

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Mar 2008 02:26 pm
Sí, claro. Tenías bien todo el código excepto que debías poner esto dentro de un EnterFrame (que se va repitiendo a medida que avanza la película). Te lo explico, mira los comentarios:

Código :

ref.onEnterFrame = function() {//ref es es el mc que quieres hacer que se mueva, le dices que en el evento haga lo siguiente
vel = int(((_xmouse - 210)/-210) * 25);//vel es la velocidad, ya tienes la fórmula para hallarla
this._x+=vel//le sumamos la velocidad, es decir, lo movemos
//Las siguientes líneas no sirven para nada, las dejé para no confundirte
//Ya está
if(_xmouse > w) { 
vel = false
}
if(_ymouse < h) {
vel = false
}
}

Por mcapu

181 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Mar 2008 03:20 pm
BUFF!

No sé que estaré haciendo mal pero no me funciona. En cuanto pongo el ref. en el EnterFrame los botones dejan de girar, se quedan estáticos.
Además, me acabo de dar cuenta de que me había equivocado con los del _lockroot. Lo ponga o no en el otro Fla (el que tiene q hacer el loadMovie para llamar al Fla con attachMovie) no afecta en nada al resultado. En el Fla que carga no aparecen los botones.

Ahora sí que ya no sé por donde tirar.
Gracias de todas formas por la ayuda mcapu, pero creo que desisto. No hay manera de combinar attachMovie y loadMovie.

Un saludo!

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Mar 2008 03:34 pm
No, no. El _lockroot va en la película que se carga, no en la que carga.
En la segunda solamente tienes que pegar el código que te puse antes (el largo).
Lo acabo de probar y no hay ningún problema. Vuelve a hacerlo cambiando lo del _lockroot.

Por mcapu

181 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Mar 2008 04:01 pm
Na de na...

Estoy desconcertado.... Si dices que te funciona te creo. Pero no sé porqué, siguiendo tus parámetros, a mí no. Posiblemente tenga algo mal y no me doy cuenta. Si acaso recapitulo lo que tengo y así puedes comparar mejor con lo que tienes tú:

- Fla contenido: aquí tengo la película y los botones dinámicos. En el AS tengo - this._lockroot=true - y ya está.

- Fla contenedor: aquí tengo un MC vacío y en el AS:
emc.onEnterFrame = function () {
loadMovie ("MENU INFINITO 08.swf", "emc")
}
// para llamar al contenido
// y el resto de código que me pusiste arriba (el largo)

En ambos Fla, en la biblioteca, tengo todos los MC y botones.

Y creo que eso es todo!

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Mar 2008 04:20 pm
Tienes dos fallos:
1. En el fla contenido es donde va el código largo
2. Las películas no pueden tener espacios ni caracteres raros como la eñe o tildes--> loadMovie ("MENU_INFINITO_08.swf", "emc")

Por mcapu

181 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Mar 2008 04:36 pm
NO ME LO PUEDO CREER!! FUNCIONA!!! JAJAJA!

Gracias mcapu! Ahora sólo me falta conseguir que se muevan los botones tras ser cargados en el contenedor (sí, no lo hacen. A ti se te mueven?) Ah! y que funcionen las máscaras.

Me pongo a ello ahora mismo.

Gracias de nuevo!

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Mar 2008 04:47 pm
:cry: :cry: :cry: :cry: :twisted: :twisted: :twisted:
Vaya problemas que nos están dando. Haz una cosa, sube los .fla y yo te lo apaño. Si no puedes subirlos, mándamelos a mi gmail (está en mi perfil).

Por mcapu

181 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Mar 2008 04:54 pm
Ok, te los envío al gmail. A ver si así se aclara el problema!!

Gracias!

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 30 May 2009 05:22 pm

mcapu escribió:

this._lockroot=true


Pues a mí esto me solucionó el problema. Gracias.

Por elmaluf

Claber

243 de clabLevel

2 tutoriales

 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.