Comunidad de diseño web y desarrollo en internet online

Problemas con onMouseMove

Citar            
MensajeEscrito el 07 Oct 2004 08:35 pm
Hola amigos, tengo una duda que lo cierto es que me tiene atascado desde el sabado pasado, lo deje unos dias y he vuelto a ponerme otra vez con esta historia y no le saco la forma de hacerlo..
Les cuento.

Código :

this.createEmptyMovieClip("cuadro", 1);
cuadro.beginFill(0x555555, 100);
cuadro.lineTo(50,0)
cuadro.lineTo(50,50);
cuadro.lineTo(0, 50);
cuadro.lineTo(0,0);

_root.onMouseMove = function(){
   if(verdad == true){
      cuadro._width = _root._xmouse;
      if(cuadro._width >= 300){
         delete _root.onMouseMove;
      }
   }
}
_root.onMouseDown = function(){
   verdad = true;
}


Copiar, pegar y probar script.

Como podran ver hay un cuadrado que aumenta el tamaño en medida que muevo el raton. Una vez pulsado anteriormente, la cuestion es que eso funciona perfectamente pero lo que quiero es que cuando llegue a x=300 se pare, un dia hablando con TheOm3ga me comento que utilizase delete _root.onMouseMove, (JOer no se me había ocurrido) funciona!! ...Pero tambien quiero que cuando vuelva a pulsar ontra vez este me vuelva a hacer la misma tonteria, saben como puedo solucionar este problema...


Os agradecería que me dijeran como hacerlo o otro modo, porque ya no puedo más :evil:



Muchisimas gracias de antemano y un saludo a todo el Foro.. 8)

Por Keyman

8 de clabLevel



 

Zamora - España..

unknown
Citar            
MensajeEscrito el 07 Oct 2004 09:07 pm
El problema que tenias ahi es que al ser _width mayor que 300 siempre te cargabas el evento, por lo que estabas en un bucle del que nunca (SI, HAS OIDO BIEN, NUNCA :|) saldrías.

Así mejor... :D

Código :

this.createEmptyMovieClip("cuadro", 1);
cuadro.beginFill(0x555555, 100);
cuadro.lineTo(50,0)
cuadro.lineTo(50,50);
cuadro.lineTo(0, 50);
cuadro.lineTo(0,0);

_root.onMouseMove = function(){
   if(verdad == true){
      cuadro._width = _root._xmouse;
      if(cuadro._width > 300){
         cuadro._width = 300;
      }
   }
}
_root.onMouseDown = function(){
   verdad = true;
}
_root.onMouseUp = function(){
   verdad = false;
}


Por cierto, buen efecto :love:

Un saludo!! ^^

Por Elecash

Claber

8126 de clabLevel

37 tutoriales
19 articulos
13 ejemplos

  Bastard Operators From Hell Desarrollador de GAIA Premio_Secretos Héroes

BarnaCity

unknown
Citar            
MensajeEscrito el 07 Oct 2004 09:25 pm
:) :) Joer que rápido dio mio...

Muchas gracias elecash pero no me he explicado bien..
A ver si soy capaz:
Lo que pretendo es usar exclusivamente: onMouseMove y onMouseDown,

Con onMouseDown lo que pretendo es que en el momento que pulso se ejecute onMouseMove y que haga lo que dicho:
cuadro._width == _root._xmouse.
y que cuando llegue a x=300 se pare y ya no se mueva más; ( es decir en este momento el cuadro._width se queda paradito con tamaño 300.

Ahora lo que pretendo es que si vuelvo a pulsar onMouseDown vuelva a accionarse onMouseMove y el mc (cuadro) vuelva a ponerse a su estado natural es decir cuadro._width == _root._xmouse;

Espero haberme explicado bien, ruego mil disculpas por haber liado al personal, lo siento muchisimo.. :oops: :oops:


Saludos

Por Keyman

8 de clabLevel



 



Ultima edición por Keyman el 08 Oct 2004 06:10 am, editado 1 vez

Zamora - España..

unknown
Citar            
MensajeEscrito el 08 Oct 2004 01:05 am
eeeh... no entiendo hombre... y si al momento del onmousedown le pones que el _width sea 50?

si no es así es que no entiendo..

saludos

Por fael

BOFH

2443 de clabLevel

3 tutoriales
2 articulos

 

unknown
Citar            
MensajeEscrito el 08 Oct 2004 06:01 am
:) :) joer siento explicarme tan mal

No lo que me refiero es que si la primera vez pulso, me hace el efecto de que cuadro._width = _root._xmouse, pero claro si lo quiero es que cuando llegue a x=300 se pare, utilizé delete _root.onMouseMove.(Hasta aquí va todo bien)....PERO El gran problema es que este efecto si quiero que vuelva a hacer lo mismo cuando vuelva a pulsar, ya no lo hace queria saber si lo puedo solucionar (yo creo que el problema es que utilzo delete _root.onMouseMove)..



Saludos.

Por Keyman

8 de clabLevel



 

Zamora - España..

unknown
Citar            
MensajeEscrito el 08 Oct 2004 07:44 am
Pues no veo el problema, será el CC :cc:

A ver, esto actualmente lo que hace es lo siguiente:

- Yo apreto el botón del ratón y me permite cambiar el ancho de la caja según muevo el ratón a una posición u otra.

- No puedo hacer la caja más grande de 300px.

- Si vuelvo a apretar el botón, podemos cambiar de nuevo el tamaño de la caja.

¿Qué puñetas es lo que falla? :shock:

Por Elecash

Claber

8126 de clabLevel

37 tutoriales
19 articulos
13 ejemplos

  Bastard Operators From Hell Desarrollador de GAIA Premio_Secretos Héroes

BarnaCity

unknown
Citar            
MensajeEscrito el 08 Oct 2004 05:20 pm
A ver si esto te satiface

Código :

this.createEmptyMovieClip("cuadro", 1);
cuadro.beginFill(0x555555, 100);
cuadro.lineTo(50, 0);
cuadro.lineTo(50, 50);
cuadro.lineTo(0, 50);
cuadro.lineTo(0, 0);
_root.onMouseDown = function() {
   cuadro._width = 50
   this.onMouseMove = function() {
      cuadro._width = _root._xmouse;
      if (cuadro._width>=300) {
         cuadro._width = 300;
         delete this.onMouseMove;
      }
   };
};

Por buho29

510 de clabLevel

1 tutorial

7 ejemplos

 

unknown
Citar            
MensajeEscrito el 10 Oct 2004 10:06 am
Wuenas amigos, disculpad no poder haber contestado antes, pero he estado fuera de cobertura el sábado, 1333 disculpas..

buho29 muchisimas gracias en efecto este era el efecto que queria realizar, eres un genio tiu..

Por cierto yo lo había hecho así xD... mucho más lio.. xD..

Código :

var pulsado = true;
this.createEmptyMovieClip("cuadro", 1);
cuadro.beginFill(0x555555, 100);
cuadro.lineTo(50,0)
cuadro.lineTo(50,50);
cuadro.lineTo(0, 50);
cuadro.lineTo(0,0);
function empieza(){
   _root.onEnterFrame = function(){
      if(verdad == true){
         cuadro._width = _root._xmouse;
         if(cuadro._width >= 300){
            delete _root.onEnterFrame;
            pulsado = true;
         }
      }
   }
}
_root.onMouseDown = function(){
   if(pulsado == true){
      verdad = true;
      pulsado == false;
      empieza();
   }
}


Joer me había atascado, y me estaba trastornando, lo poco que se, creo que dia a dia se menos. xD.


Muchisimas gracias a todos y discupad por no haberme aclarado.. Aunque al final se ha solucionado gracias a todos..


Saludos... :D

Por Keyman

8 de clabLevel



 

Zamora - España..

unknown

 

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