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

Como colocar MC en ultimo nivél

Estas en el tema de Como colocar MC en ultimo nivél en el foro de Flash y Actionscript en Foros del Web. Hola estoy creando una pelicula que mediante un menu desplegable que es un MC (dropdown menu) llama a los difernetes Movie Clips que componen la ...
  #1 (permalink)  
Antiguo 05/11/2008, 09:08
 
Fecha de Ingreso: mayo-2006
Ubicación: Logroño
Mensajes: 86
Antigüedad: 11 años, 7 meses
Puntos: 0
Como colocar MC en ultimo nivél

Hola estoy creando una pelicula que mediante un menu desplegable que es un MC (dropdown menu) llama a los difernetes Movie Clips que componen la misma, los MC de contenido los llama mediante el siguiente código y cuando llama uno nuevo elimina el contenido anterior:

Código:
   boton.onPress = function() { 
   attachMovie("movieclip1", "posicion1", level0, {_x:200,_y:300});

};
Sin embargo lo que no consigo controlar es el nivél donde coloca el MC que llama, ya que en la pelicula hay diferentes elementos y el MC llamado debería quedar abajo del todo en el _root y ahora mismo se superpone a todos los demas elementos.

Alguien sabe como podría hacerlo?
como puedo colocar los MC clips llamados mediante código en el nivél más bajo?


Gracias de antemano
  #2 (permalink)  
Antiguo 05/11/2008, 09:38
Avatar de websmonerris  
Fecha de Ingreso: junio-2008
Ubicación: La Vila Joiosa
Mensajes: 89
Antigüedad: 9 años, 5 meses
Puntos: 2
Respuesta: Como colocar MC en ultimo nivél

Hombre lo normal sería trabajar al revés poniendo siempre encima, al ponerlo abajo se solapan... puedes crearte una variable donde controlar la profundidad mas baja y decrementar esta cada vez que utilices la funcion asi sabes que estará bajo del todo, la profundidad admite negativos así esta variable aunque sea negativa no te preocupes,,,
También puedes recorrerte todos los MC y recoger sus Depth con getDepth()....

Nunca lo habia planteado al reves pero puedes utilizar eso de la variable y que esta sea negativa

level = _root.getNextHighestDepth();

Tengo un blog donde tengo colgado un par de ejercicios que tratan con profundidad el último es un tornado de imagenes... pero también hay uno de galería con profundidad...

te dejo el link:

monerris.wordpress.com
  #3 (permalink)  
Antiguo 06/11/2008, 03:38
 
Fecha de Ingreso: mayo-2006
Ubicación: Logroño
Mensajes: 86
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como colocar MC en ultimo nivél

Gracias Monerris por la ayuda.

He conseguido solucionar en parte lo de los niveles, la verdad es que no se demasiado de programación y por eso mi codigo puede que no sea el más lógico.

He encontrado que para que las peliculas de contenido queden abajo les tengo que dar el level= -16383 pero lo que no consigo hacer ahora es elminiar otro MC que esta en el level -16381

Mi codigo es el siguiente
Código:
   boton_c1.onPress = function() {
this._parent._parent.attachMovie("c_garbanzos","posicion2",-16383,{_x:-67, _y:218});
removeMovieClip(this._parent._parent.cucharas);
};
Quiero quitar el clip "cucharas" que está en el raiz en el level -16381 pero no lo gonsigo con este codigo ni con otros tantos que he probado.


Por otro lado como funciona lo de getDepth().... de un MC ya que el level de estas peliculas los he sacado probando numero a numero...

Por cierto muy buenos los tutoriales del tornado y la galeria!

Gracias
  #4 (permalink)  
Antiguo 06/11/2008, 07:48
Avatar de websmonerris  
Fecha de Ingreso: junio-2008
Ubicación: La Vila Joiosa
Mensajes: 89
Antigüedad: 9 años, 5 meses
Puntos: 2
Respuesta: Como colocar MC en ultimo nivél

Veo que estas trabajando con muchos _parent asegurate siempre de saber en que nivel estas (de pelicula si quieres manejar desde el primero con poner _root sobra)

el removeMovieClip() no se utiliza así es el movie clip quien lo llama a él:
this._parent._parent.cucharas.removeMovieClip();

Supongo que sabras que cuando haces esto:
attachMovie("c_garbanzos","posicion2",-16383,{_x:-67, _y:218})
estas creando un MovieClip el cual esta vinculado a tu pelicula con el nombre de c_garbanzos, y le estas dando como nombre de instancia posicion2, que quiere decir eso, que ahora tu movieClip de c_garbanzos se llama posicion2
OK?

sobre getDepth() funciona como cualquier getter de programación... como antes el objeto llama a la función y esta devuelve un valor en este caso un int:
trace(this._parent._parent.cucharas.getDepth());--> con esto veriamos su profundidad en la pelicula... Si quieres utilizarlo para poner despues de este un objeto puedes almacenar su valor en una variable o bien hacerlo directamente...
Te recuerdo que le puedes cambiar los valores de profundidad mediante:
MC..swapDepths(un entero);

Te aconsejo que vayas con cuidado con los _parent es jugar con fuego, con que te engañes el flash no te va avisar de que tienes un fallo de programación... es lo que tiene AS2...
  #5 (permalink)  
Antiguo 07/11/2008, 02:39
 
Fecha de Ingreso: mayo-2006
Ubicación: Logroño
Mensajes: 86
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como colocar MC en ultimo nivél

Gracias de nuevo por tu ayuda y tus consejos.

EL hecho de que utilice tanto this._parent es porque esta es una pelicula secundaria que es llamada por la pelicula principal, y si pongo _root. me funciona solo en la pelicula secundaria pero no cuando la llamo desde la base.

Eso, y que puesto que no soy programador y aprendo a base de prueba/tortazo no conozco otra forma de hacerlo.

Sobre lo del attachMovie ahora que ya me funciona todo y puesto que era la primera vez que añadía clips de esta forma (hasta ahora llamaba "loadMovie" externas) veo otro detalle que no me había dado cuenta y que para mi es algo problematico.

Como tiene bastantes MC con fotos la pelicula pesa 350kb, y aunque le pongo un loader, desde el primer fotograma la pelicula pesa 300kb (supongo porque llama los clips de la biblioteca) entonces el loader aparece cuando ya esta casi al 100%.

El loader que utilizo es:
Código:
bytes_loaded = Math.round(this.getBytesLoaded());
bytes_total = Math.round(this.getBytesTotal());
getPercent = bytes_loaded/bytes_total;

this.loadText = Math.round(getPercent*100)+"%";


if (bytes_loaded == bytes_total) {
	this.gotoAndStop(3);
}
Y me funciona bien hasta que llamo MC de la biblioteca.

Hay alguna forma de solucionar esto.


Gracias
y disculpas por mi ignorancia!
  #6 (permalink)  
Antiguo 07/11/2008, 05:59
Avatar de websmonerris  
Fecha de Ingreso: junio-2008
Ubicación: La Vila Joiosa
Mensajes: 89
Antigüedad: 9 años, 5 meses
Puntos: 2
Respuesta: Como colocar MC en ultimo nivél

Es lo que tiene flash, abre las puertas a diseñadores graficos o gente que le gusta animar o bien a base de fotogramas. Pero para darle más vida al flash y que la cosa tenga su chicha hay que adquirir unos conocimientos de programación y te das cuenta de que Flash+programacion(AS+PHP+MySql) se pueden conseguir verdares maravillas... Pero bueno a lo de nosotros todo empezo a base de prueba/tortazo, pero parece que te estes complicando la vida, busca informacion sobre loaders...

El peso de los swf es relativo en los ejemplos de mi blog que viste el peso de este no superava los 100kb pero es porque lo unico que tenia en el flash erán contenedores vacios, MC (vacios) y en ellos hacia los "contenedor.loadMovie(imagen.jgp)" y ahi es donde se cargaba la foto, pero bueno en tu caso habría que plantearse varias cosas, que es lo que pretendes y cual es la eficiencia que quieres conseguir... Por otra parte cuando tengas tu flash hecho y pese más de 200kb pues podrías plantearte de hacerle un cargador (una barrita de porcentaje que hasta que no se cargue no empieze el flash) así una vez dentro parece que vaya todo fluido, en vez de depender de la línea del cliente...
·Conclusiones carga tus fotos desde fuera no las importes a la biblioteca
·Pone un cargador a la pelicula principal (busca en el foro hay bastantes)
·A ser posible para la proxima vez, parte tu flash en .swf un principal con un contenedor que cargues ahí los swf externos... ganarás fluideza

Sobre los MC de las bibliotecas cuando los cargas con attachMovie y no estan en el flash desde un principio, lo que debemos hacer es con el botón derecho sobre él propiedades->avanzado->vinculación "exportar para action Script" y "primer fotograma" y le damos un identificador el cual es el que llamamos desde el attachMovie

Bueno espero ayudarte
__________________
Aplicaciones y Desarrollo Web
websmonerris.es
Blog Monerris (Flash, PHP y más)
monerris.wordpress.com
  #7 (permalink)  
Antiguo 12/11/2008, 11:14
 
Fecha de Ingreso: mayo-2006
Ubicación: Logroño
Mensajes: 86
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como colocar MC en ultimo nivél

Gracias de nuevo, solucione el problema quitando el "exportar en el primer frame" y poniendo una instancia de los MC en el frame que queria.

Ahora ya va todo de lujo!

Un saludo
Rafa
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 16:52.