Comunidad de diseño web y desarrollo en internet online

Que un mc siga al puntero sólo sobre un área determinada

Citar            
MensajeEscrito el 29 Ene 2007 12:44 pm
Hola todos! Estoy intentando que al pasar el puntero sobre una foto, aparezca a su lado (sin que el puntero desaparezca) una etiqueta con información sobre la imagen y que vuelva a ser un puntero normal cuando se sale de esa imagen. He hecho un botón transparente que ocupa el área de la imagen y a éste le he asignado el siguiente código (el mc con la etiqueta se llama "puntero" como nombre de instancia y también como vínculo para ActionScript):

on (rollOver) {punt = function (){
puntero._x = _root._xmouse;
puntero._y = _root._ymouse;
}
setInterval(punt,0);
}
on (rollOut) {Mouse.show();
puntero.hide();
}


...pero me surgen varios problemas:

El primero es que para que funcione, la etiqueta (el mc) tiene que estar en el escenario, visible y quieta antes de hacer rollOver sobre la imagen y que comience a moverse al lado del puntero, y claro, me gustaría que esto no fuera así.

El segundo es que aunque al hacer RollOver funciona, al hacer rollOut la etiqueta ya no desaparece, sino que sigue al puntero por toda la escena, fuera de la imagen.

Y el tercero y menos importante es que el puntero se convierte en una manita típica de botón al pasar por encima de la imagen y preferiría que siguiera teniendo el aspecto de flecha.

No sé, he hecho varias pruebas y estoy hecha un lío... Podría alguien aclararme un poco estas dudas, o remitirme a algún tutorial o ejemplo donde se encuentre lo que busco??

Espero haberme sabido explicar. Muchísimas gracias!

PD: No sé si sería más fácil hacerlo de manera que el puntero símplemente desaparezca al pasar sobre la imagen y se convirtiera en la etqueta, volviendo a ser puntero normal al hacer rollOut. Si es así, también me valdría. ^^

Por zapiram

38 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 29 Ene 2007 02:08 pm
Aca cree un codigo muy simple que podes usar. En vez de un boton uso un movie clip y le hago un hittest. si es true muestra el puntero si no no...

Código :

var MouseListener:Object = new Object();//crea un escuchador del mouse
MouseListener.onMouseMove = function() {
   if (hitest_mc.hitTest(_root._xmouse, _root._ymouse, true)) {      
      puntero._alpha = 100;
      puntero.swapDepths(100);
      puntero._x = _root._xmouse + 6;
      puntero._y = _root._ymouse + 6;      
   }else{      
      puntero._alpha = 0;
      
      }
};
Mouse.addListener(MouseListener);

Por thacon

53 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 29 Ene 2007 07:20 pm
Muchas gracias thacon por tu ayuda, he aplicado el código pero algo debo estar haciendo mal porque no me sale; te digo qué he hecho:

En una capa está la imagen sobre la que quiero que aparezca la etiqueta acompañando al puntero. Es un mc con nombre de instancia "imagen" y vinculación para ActionScript también como "imagen".

El puntero, con nombre de instancia y de vinculación "puntero", está en la biblioteca.

...Y he aplicado tu código (cambiando el nombre "mc" por el de "imagen") tanto a un primer fotograma de la escena como al mc "imagen".

var MouseListener:Object = new Object();//crea un escuchador del mouse
MouseListener.onMouseMove = function() {
if (hitest_imagen.hitTest(_root._xmouse, _root._ymouse, true)) {
puntero._alpha = 100;
puntero.swapDepths(100);
puntero._x = _root._xmouse + 6;
puntero._y = _root._ymouse + 6;
}else{
puntero._alpha = 0;

}
};
Mouse.addListener(MouseListener);


...pero no ocurre nada. Quizá sea porque te confieso que no sé lo que es un hittest :oops:

¿Qué estoy haciendo mal?

Por zapiram

38 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 29 Ene 2007 09:43 pm
HitTest es una funcion que detecta cuando el mouse o un movie clip se estan tocando.

Lo que pasa en tu pelicula es que no te muestra el puntero porque yo no lo vincule por action script sino que lo deje en el root en un lugar fuera de la pelicula. Al codigo lo escribi mientras estaba en mi trabajo por eso lo tuve que hacer lo mas rapido posible :oops:
Asi que lo que deberias hacer es tirar el movie clip puntero sobre la pelicula y proba si te anda. Tambien podrias jugar con un easing de alpha.

Código :

var MouseListener:Object = new Object();//crea un escuchador del mouse
MouseListener.onMouseMove = function() {
if (hitest_imagen.hitTest(_root._xmouse, _root._ymouse, true)) {
alphaPuntero = 100;
puntero.swapDepths(100);
puntero._x = _root._xmouse + 6;
puntero._y = _root._ymouse + 6;
}else{
alphaPuntero = 0;

}
};
Mouse.addListener(MouseListener); 

puntero.onEnterFrame = function (){
this._alpha += (alphaPuntero-this._alpha) /3;
}

Por thacon

53 de clabLevel



Genero:Masculino  

firefox

 

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