Comunidad de diseño web y desarrollo en internet online

Profundidad, de movieclips

Citar            
MensajeEscrito el 29 Abr 2009 10:51 am
Buenas, el problema es sencillo.

Tengo una serie de movieclips que cargan imagenes externamente, y lo que quiero hacer, es una funcion que al pasar el mouse por arriba las imagenes se agranden.. hasta ahi todo bien.. pero algunas quedan por encima...

Entonces, de seguro hay algun code que permita a X movieclip estar por encima de los demas.

Me podrian indicar, como se hace o cual es?

Gracias!!!

Por Stranyer

38 de clabLevel



 

unknown
Citar            
MensajeEscrito el 29 Abr 2009 01:25 pm
Mueve el item al "top" de la DisplayList
Vamos, usar, en la función donde controlas el paso del ratón, un setChildIndex

Código ActionScript :

setChildIndex(e.target,(numChildren-1))

(He supuesto que están TODOS los MCs en la propia película, si están DENTRO de un MC puedes escribir
contenedor.numChildren-1 en lugar de num_Children o, en cualquier caso, e.target.parent.numChildren.

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Abr 2009 03:11 pm

Eliseo2 escribió:

Mueve el item al "top" de la DisplayList
Vamos, usar, en la función donde controlas el paso del ratón, un setChildIndex

Código ActionScript :

setChildIndex(e.target,(numChildren-1))

(He supuesto que están TODOS los MCs en la propia película, si están DENTRO de un MC puedes escribir
contenedor.numChildren-1 en lugar de num_Children o, en cualquier caso, e.target.parent.numChildren.


No puedo hacer que funcione.. espero estar haciendo bien... les paso del code fuente:

Código :

stop();
import gs.*;
import gs.easing.*;
 
TweenMax.to(tiempo, 30, {rotation:360, ease:Linear.easeNone});
TweenLite.to(a.Zabala, 1, {autoAlpha:0});

var carga:Timer=new Timer(30000);
carga.addEventListener(TimerEvent.TIMER, cargaImagen);
carga.start();
a.Zabala.source="zabala.jpg?"+Math.random();
b.SanMartin.source="sanmartin.jpg?"+Math.random();

TweenLite.to(a.Zabala, 1, {autoAlpha:1});
TweenLite.to(b.SanMartin, 1, {autoAlpha:1});


function cargaImagen(evt:TimerEvent):void {
   trace("LLamada "+evt.target.currentCount);
   a.Zabala.source="zabala.jpg?"+Math.random();
   b.SanMartin.source="sanmartin.jpg?"+Math.random();

    TweenMax.to(tiempo, 30, {rotation:360, ease:Linear.easeNone});
   TweenLite.to(a.Zabala, 1, {autoAlpha:1});
   TweenLite.to(b.SanMartin, 1, {autoAlpha:1});


   trace("Nuevas");
}

function AgrandarZ (evt:Event) {
TweenMax.to(a, 1, {bezier:[{x:136.35, y:158}], orientToBezier:true, scaleX:2, scaleY:2, ease:Bounce.easeOut});
setChildIndex(a.target,(numChildren-1)) 
}

function AchicarZ (evt:Event) {
TweenMax.to(a, 1, {bezier:[{x:136.35, y:158}], orientToBezier:true, scaleX:1, scaleY:1, ease:Bounce.easeOut});

}
a.addEventListener(MouseEvent.ROLL_OVER, AgrandarZ)
a.addEventListener(MouseEvent.ROLL_OUT, AchicarZ)


function AgrandarSM (evt:Event) {
TweenMax.to(b, 1, {bezier:[{x:136, y:158}], orientToBezier:false, scaleX:2, scaleY:2, ease:Bounce.easeOut});
setChildIndex(b.target,(numChildren-1)) 
}

function AchicarSM (evt:Event) {
TweenMax.to(b, 1, {bezier:[{x:136.35, y:407.45}], orientToBezier:false, scaleX:1, scaleY:1, ease:Bounce.easeOut});

}
b.addEventListener(MouseEvent.ROLL_OVER, AgrandarSM)
b.addEventListener(MouseEvent.ROLL_OUT, AchicarSM)



En que me estoy equivocando?

gracias!

Por Stranyer

38 de clabLevel



 

unknown
Citar            
MensajeEscrito el 30 Abr 2009 03:43 pm
puse

Código ActionScript :

e.target

porque pensé que el argumento de tu función "AgrandarZ era (e:Event)
Si el argumento es evt, debería ser "evt.target"
Tal y como lo pones también podrías poner (en lugar de evt.target) "a", para la función AgrandarZ y "b" para la función AgrandarSM

Te cuento. cuando escribimos algo del tipo

Código ActionScript :

unmc.addEventListener(MouseEvent.ROLL_OVER, funcionRollOver)

La función funcionRollOver tiene de argumento una variable de tipo "Event"

Código ActionScript :

function funcionRollOver(evt:Event){ //<--en este caso la llamo "evt"
    //en evt.target tienes lo mismo que unmc, así
    evt.target.x=300 
    //es lo mismo que
    unmc.target.x=300
}

¿cuál es el sentido de todo esto?
Pues que podríamos tener una ÚNICA función "funcionRollOver" y aplicársela a varios MCs.

Código ActionScript :

unmc.addEventListener(MouseEvent.ROLL_OVER, funcionRollOver)
otromc.addEventListener(MouseEvent.ROLL_OVER, funcionRollOver)
function funcionRollOver(evt:Event){ //<--en este caso la llamo "evt"
    evt.target.x=300 
}

en este caso, cuando pasemos el ratón por encima de unmc o de otromc se irán a la posición 300

Podemos, con estas, usar una variable en los MCs de modo que escribamos

Código ActionScript :

unmc.addEventListener(MouseEvent.ROLL_OVER, funcionRollOver)
otromc.addEventListener(MouseEvent.ROLL_OVER, funcionRollOver)
//damos una variable "pox" a cada MC
unmc.posx=300
otromc.pox=400
function funcionRollOver(evt:Event){ //<--en este caso la llamo "evt"
    evt.target.x=evt.target.posx //<--la usamos aquí
}

y se irán a la posción 300 o a la 400 según sea unmc u otromc.
Desgraciadamente, esto da un error de compilación. Debemos hacer lo que se conoce como "conversión de cast" que no es más que decirle a flash que "evt.target" es de tipo MovieClip. Lo podemos hacer de dos modos

Código ActionScript :

function funcionRollOver(evt:Event){
    MovieClip(evt.target).x=MovieClip(evt.target).posx //<--conversión de cast típica 
}

//ó

Código ActionScript :

function funcionRollOver(evt:Event){
    //creo una variable auxiliar
    var mc:MovieClip=evt.target as MovieClip
    //ó bien
    //var mc:MovieClip=MovieClip(evt.target)

    //y luego la uso en lugar de evt.target
    mc.x=mc.posx 
}

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Abr 2009 05:13 pm
pfff... tan complicado era el tema!?... voy a ver si lo puedo hacer andar.. cualquier cosa aviso.

Gracias man, muy buena la explicacion!!! :wink:

Saludos

Por Stranyer

38 de clabLevel



 

unknown

 

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