Comunidad de diseño web y desarrollo en internet online

Tres iconos diferentes para el puntero

Citar            
MensajeEscrito el 23 Ene 2007 04:06 pm
Que tal.

Lo que quiero conseguir es lo siguiente:

Al apretar a un botón, el icono del puntero del ratón cambia a esta posición:
La idea es arrastrar ese botón al sitio que le toca manteniendo apretado el botón del mouse, como lo haríamos en windows, pero también al igual que en windows, cuando pasemos por una zona donde no se pueda soltar el botón, el icono del puntero cambiará al de prohibido:

Pues ahora os explico un poco como tengo el código, a ver si alguien me puede orientar:

Código :

//attacho el mc cursor donde tengo los dos iconos.
this.attachMovie("cursor", "cursor", getNextHighestDepth());
this.cursor._x=0;
this.cursor._y=0;
//creo la funcion para mostrar el icono 1, el 2 o mostrar el de defecto.
function CanviCursor(tipusCursor){
   if (tipusCursor == 1){
      cursor.cursor1._visible=true;
      cursor.cursor2._visible=false;
      Mouse.hide();
   } else if (tipusCursor == 2){
      cursor.cursor1._visible=false;
      cursor.cursor2._visible=true;
      Mouse.hide();
   } else {
      cursor._visible=false;
      Mouse.show();
   }
   cursor.onMouseMove = function() {
      this._x = _xmouse;
      this._y = _ymouse;
      updateAfterEvent()
   };
}
//inicialmente llamo a la funcion para mostrar el icono por defecto. 
CanviCursor(0);
//cuando doy click al boton este pasa a tener el icono 1
apreeeta.onPress=function(){
   cursor._visible=true;
   CanviCursor(1);
}
//al pasar por encima de esta zona, muestra el icono prohibido, pero no va si sigo con el botón pulsado.
nopasis.onRollOver=function(){
   cursor._visible=true;
   CanviCursor(2);
}
//al salir de la zona vuelve al icono por defecto
nopasis.onRollOut=function(){
   cursor._visible=true;
   CanviCursor(0);
}


Lo que no consigo es dar evento mientras el botón del ratón sigue apretado… quizás no se pueda controlar este.

Muchas gracias por su tiempo!

Salut!

Por loisin

65 de clabLevel



Genero:Masculino  

Colonia-Castells

firefox
Citar            
MensajeEscrito el 24 Ene 2007 12:52 pm
La mejor manera de usar varios cursores es colocando cada cursor en frames de un mismo MC.
Ocultas el original al principio. (puede poner una copia de él en el frame 1 de ese MC para moverte mejor y dejar el original en hide continuamente.
Luego, según la necesidad simplemente llamas al frame(o frame inicial si haces cursores animados) del MC donde está la imagen de cursor que quieres con:
gotoAndStop(n). (para cursores de un solo frame)
gotoAndPlay(n). (para cursores animados y sin olvidarte en este caso el stop() al final de la animación)

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

msie
Citar            
MensajeEscrito el 24 Ene 2007 03:08 pm
Gracias Teseo por la aportacion, pero mi problema no esta en mostrar los iconos por frames o ocultandolos mediante _visible, hasta aquí llego! jaja

Lo que no consigo, como digo en el post es averiguar un evento mientras el boton del mouse sigue presionado y se mueve, pasando por encima de un botón que le hara cambiar el icono. Todo esto repito, con el boton del mouse apretado en todo momento.
Igual que harias para arrastrar un archivo de una carpeta a otra en windows.
No se si lo explique bien o me lie un poco; espero que quede mas claro, y me podais echar una mano!

saludos!

Por loisin

65 de clabLevel



Genero:Masculino  

Colonia-Castells

firefox
Citar            
MensajeEscrito el 24 Ene 2007 05:05 pm
Entonces no necesitas definir el area donde salir el cursor "prohibido".
Simplemente pon un onRollOut (además del onPress) en las areas del cursor "selección".

Código :

apreeeta.onRollOut=function(){
   cursor._visible=true;
   CanviCursor(2);
}
y un onRollOver al entrar en el clip de zona util para volver al cursor "selección".
y onReleaseOutside para ejecutar la acción al entrar en zona "util" y soltar el botón.
Es decir, las zonas a definir como clips son las utiles a la acción, no las "vacias".

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

msie
Citar            
MensajeEscrito el 25 Ene 2007 11:03 am
bueno, finalmente lo he podido resolver con un onEnterFrame que comprueba en todo momento las coordenadas del puntero y comprueba con las del mc contenedor; sin son diferentes muestra el icono de prohibido, si son parecidas el de permitido.

Incluyo el código por si hay algun interesado:

Código :

//attacho el mc cursor donde tengo los dos iconos.
this.attachMovie("cursor", "cursor", getNextHighestDepth());
this.cursor._x=0;
this.cursor._y=0;
this.cursor._visible=false;
//El icono sigue al cursor en todo momento
cursor.onMouseMove = function() {
   this._x = _xmouse;
   this._y = _ymouse;
   updateAfterEvent()
};
//creo la funcion para mostrar el icono 1, el 2 o mostrar el de defecto.
function CanviCursor(tipusCursor){
   this.cursor._visible=true;
   
   if (tipusCursor == 1){
      cursor.cursor1._visible=true;
      cursor.cursor2._visible=false;
      Mouse.hide();
   } else if (tipusCursor == 2){
      cursor.cursor1._visible=false;
      cursor.cursor2._visible=true;
      Mouse.hide();
   } else {
      cursor._visible=false;
      Mouse.show();
   }
}

apreeeta.onPress=function(){
   //con un enterframe compruebo si esta encima del otro movieclip o aun no.
   this.onEnterFrame = function () {
      this.startDrag();
      cursor._visible=true;
      //inicialmente el icono es 2 o prohibido
      CanviCursor(2);
      //si las cordenadas del mouse son parecidads al mc contenedor, cambiamos de icono
      if (_xmouse>=nopasis._x and _ymouse>=nopasis._y){
         CanviCursor(1);
      }else {
         CanviCursor(2);
      }
   }
}
//al soltar el mouse se deja de arrastrar y el puntero vuelve al inicial.
apreeeta.onRelease=function(){
   delete this.onEnterFrame;
   this.stopDrag();
   CanviCursor(0);
}



Gracias por los aportes! :wink:

Salut!

Por loisin

65 de clabLevel



Genero:Masculino  

Colonia-Castells

firefox

 

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