Comunidad de diseño web y desarrollo en internet online

Mostrar en escena una imagen (movieclip) en primer plano

Citar            
MensajeEscrito el 14 Oct 2010 02:52 pm
Buenas,

Tengo una escena en la que se crean elementos (drawRect, etc...) desde actionScript. Necesito colocar una imagen encima (un marco de fotos), pero al colocarlo (tanto con as como en un fotograma de una capa) me aparece por debajo de todos los elementos de la escena.

¿Conocéis alguna manera de solucionar esto (si se puede)?

Gracias de antemano :wink:

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 14 Oct 2010 03:19 pm
Si lo colocas con el AS correcto no debería pasar, agregalo al terminar la rutina de dibujo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Oct 2010 04:53 pm
La prioridad de gráficos del Flash Player cuando están bajo la rutina de la API de dibujo es pobre. Pon todo en un Sprite.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 14 Oct 2010 07:16 pm
Muchas gracias a ambos.

Efectivamente Hernán, lo que he visto de la API no me convence mucho... creo que va a ser mucho problema ponerlo en un Sprite, pero al menos habrá que probarlo.

;-)

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 14 Oct 2010 10:12 pm
no es tan complicado, directamente creas el sprite primero y luego pones a todas las figuras sp.graphics delante y listo!

Código ActionScript :

var sp:Sprite = new Sprite();
sp.graphics.drawCircle(...)
sp.graphics.drawRect(...) 
//... y así! 


saludos!

Por Pablokorku

60 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Oct 2010 10:24 pm
Gracias Pablokorku,

Voy a hacerlo como dices, aunque voy a aprovechar para reescribirlo, que tengo un lío montado impresionante.

;-)

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 14 Oct 2010 10:51 pm
bueno suerte cualquier cosa chiflá!

saludos!

Por Pablokorku

60 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Oct 2010 12:52 am
Si te aparece debajo es porque as es un lenguaje de flujo (no se detiene a terminar una orden para empezar otra, como PHP, por ejemplo) asi es que, aunque sea la última orden, el marco de fotos es el primer objeto que se coloca en la lista de visualizacióin así que el navegador lo pone el primero, y, por tanto, lo demás, que tarda un poco más, lo pone encima en razón de una propiedad llamada z que es como el z-index en CSS.
Por esto es que solo tienes que asegurarte que, salga a escena cuando quiera que salga, que se va a colocar encima de todo.
Un ejemplo sería asígnarle a los demás objetos un z de 0 o 1:

Código ActionScript :

elemento.z = 1;

y al marco un 2:

Código ActionScript :

marcodefotos.z = 2;

Así te aseguras que siempre estará por encima.
Eso si no te importa el orden en que aparezcan las otras formas.
Si quieres jugar más con niveles tienes esta función que no he probado pero parece buena en teoria:

Código ActionScript :

function traerAlFrente(MC:MovieClip):void{ 
   //Esta variable obtiene la posición (profundidad) del MovieClip 
   var pos:Number = this.getChildIndex(MC) 
   //Mientras que el clip no se encuentre por encima 
   //del resto, se ejecutará la siguiente función 
   while(pos < this.numChildren - 1){ 
      //La variable "siguiente" obtiene el 
      //MovieClip inmediatamente superior 
      var siguiente:MovieClip = this.getChildAt(pos+1) as MovieClip 
      //Se intercambia la posición de los dos clips 
      this.swapChildren(MC,siguiente) 
      //Actualizamos el valor de la variable "pos" 
      pos = this.getChildIndex(MC) 
   } 
}


Este es el post de donde lo he sacado y que te recomiendo que leas:
swapDepths y getNextHighestDepth en Actionscript 3 (por: nestorrente)

Por malcomcc

39 de clabLevel



Genero:Masculino  

Desarrollador Web/Multiplataforma/Gráfico

firefox
Citar            
MensajeEscrito el 18 Oct 2010 08:40 am
Mil gracias malcomcc, me ha sido muy útil este ejemplo.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

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