Foros del Web » Creando para Internet » Flash y Actionscript »

Mouse

Estas en el tema de Mouse en el foro de Flash y Actionscript en Foros del Web. Alguien me puede decir como hacer el efecto en el que cuando pones el cursor del mouse encima de un botón se mueve un cuadro ...
  #1 (permalink)  
Antiguo 24/03/2005, 22:47
Avatar de Maximillian  
Fecha de Ingreso: marzo-2005
Ubicación: México
Mensajes: 261
Antigüedad: 19 años, 8 meses
Puntos: 0
Exclamación Mouse

Alguien me puede decir como hacer el efecto en el que cuando pones el cursor del mouse encima de un botón se mueve un cuadro que lo envuelve y que cuando seleccionas otro botón el cuadro selecciona a ese botón.

Miren me refiero al efecto como esta página
http://www.geocities.com/hazeksite/index.htm
  #2 (permalink)  
Antiguo 25/03/2005, 00:00
Avatar de Spike_ak  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 442
Antigüedad: 19 años, 8 meses
Puntos: 0
Yo te digo :P

Hola, primero porque no ponias todas las preguntas juntas?!?!
Creo que tenes que convertir el rectangulo en un simbolo(clip de pelicula) y despues agregarle esta Accion:

onClipEvent (enterFrame) {
this._x = _root._xmouse;
this._y = _root._ymouse;
}
Eso va hacer que el rectangulo siga al mouse(puntero)
Chau
__________________
*****************************************
la Ignorancia es la fuerza
  #3 (permalink)  
Antiguo 25/03/2005, 00:37
Avatar de Maximillian  
Fecha de Ingreso: marzo-2005
Ubicación: México
Mensajes: 261
Antigüedad: 19 años, 8 meses
Puntos: 0
y como le hago para que esto sea como en la pág
http://www.geocities.com/hazeksite/index.htm
O sea me refiero a que solamente se active cuando este sobre unos botones y que ademas se mueva "fluidamente" no de golpe
  #4 (permalink)  
Antiguo 25/03/2005, 03:28
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 20 años, 4 meses
Puntos: 12
A ver... Algo así:
cuadro_mc es el nombre de instancia del recuadro. Para el primer botón:
Código:
on (rollOver) {
   onEnterFrame = function() {
      if (cuadro_mc._x<=100) { //comprueba si está en la posición.
         cuadro_mc._x=100;
         delete onEnterFrame;
      } else { //si no lo está...
         cuadro_mc._x-=5;
      }
   }
}
He supuesto que x=100 es la posición del botón de la izquierda. Para el otro botón, cambiar la coordenada y el signo del incremento (cuadro_mc._x+=5).
Saludos.
  #5 (permalink)  
Antiguo 25/03/2005, 08:06
Avatar de Spike_ak  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 442
Antigüedad: 19 años, 8 meses
Puntos: 0
Lee

Hola, no se si hace falta el codigo ese, porque si el ara de trabajo es ese espacio solo, el recuadro no se va a escapar.
__________________
*****************************************
la Ignorancia es la fuerza
  #6 (permalink)  
Antiguo 25/03/2005, 09:37
Avatar de Maximillian  
Fecha de Ingreso: marzo-2005
Ubicación: México
Mensajes: 261
Antigüedad: 19 años, 8 meses
Puntos: 0
Creo que no entendi muy bien como hacerlo
Voy a poner lo que entendi
1- creo un botón que se va a llamar boton1 luego hago que su area quede por donde pasa la linea 100 de la coordenada "x" y su coordenada "y" puede ser donde yo quiera.
2 - luego pongo mi otro botón que se va a llamar botón2 y lo coloco en otras coordenadas, digamos 400 y la coordenada y puede ser la que sea
3 - luego creo un rectángulo y lo convierto en movie clip y lo llamo cuadro_mc.
4 - (aqui es donde no se muy bien que que hacer) luego selecciono el rectangulo le pongo boton derecho y me voy a actions y pego el código
Código:
on (rollOver) {
   onEnterFrame = function() {
      if (cuadro_mc._x<=100) { //comprueba si está en la posición.
         cuadro_mc._x=100;
         delete onEnterFrame;
      } else { //si no lo está...
         cuadro_mc._x-=5;
      }
   }
}
Lo que yo necesito es que cuando seleccione "boton 1", "cuadro_mc" debe de moverse hacia botón 1 y que cuando seleccione "boton 2", cuadro_mc se mueba hace boton2.
PREGUNTAS:
Esta bien donde pegue el código?
El código que me hiciste el favor de proporcionarme, hace lo que yo dije?
  #7 (permalink)  
Antiguo 25/03/2005, 12:08
Avatar de roc2107
ɹopɐɹǝpoɯ
 
Fecha de Ingreso: febrero-2003
Ubicación: León Guanajuato
Mensajes: 4.834
Antigüedad: 21 años, 9 meses
Puntos: 109
on (rollOver) {
onEnterFrame = function() {
if (cuadro_mc._x<=100) { //comprueba si está en la posición.
cuadro_mc._x=100;
delete onEnterFrame;
} else { //si no lo está...
cuadro_mc._x-=5;
}
}
}

Es la acción para el botón y:

onClipEvent (enterFrame) {
this._x = _root._xmouse;
this._y = _root._ymouse;
}

Para el mc el rectangulo que quieres mover.
__________________
Blog de Diseño Gráfico roc21.com ||

El secreto de la creatividad es saber esconder tus fuentes.
  #8 (permalink)  
Antiguo 25/03/2005, 12:29
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 20 años, 4 meses
Puntos: 12
A ver, el código que yo te pasé es para el botón, no para el clip de película del cuadrado. Lo que tiene que ser constante es la coordenada Y, puesto que el cuadro se mueve en el eje de abcisas (X).
No logro comprender por qué lo del onClipEvent de los otros. Con ese código, el centro del cuadrado se colocará justo donde la flecha del cursor. Ese no es el objetivo, ¿no?
Saludos.
  #9 (permalink)  
Antiguo 25/03/2005, 14:37
Avatar de webgeri  
Fecha de Ingreso: marzo-2005
Ubicación: montevideo
Mensajes: 374
Antigüedad: 19 años, 8 meses
Puntos: 0
otras formas

como siempre hay varias formas de hacer algo por action
aca va otra que lei en un post de alguien en el foro
esta ves no recuerdo quien

opcion 1:

tenes el MC nombre de instancia mc
boton nombre de instancia bt

accion sobre el boton

on (rollOver) {
_root.mc.onEnterFrame = function(){
mc._x +=(bt._x-this._x)/4;
}
}

y el MC ira la posicion x del boton bt

accion para el boton 2
le tenes que poner otro nombre de instancia por ej. b2

y la accion sobre este boton es

on (rollOver) {
_root.mc.onEnterFrame = function(){
mc._x +=(b2._x-this._x)/4;
}
}

y si tenes mas botones les das un nombre de instancia diferente a cada/u
haces los cambios respectivos en el script y funciona

ahora se que hay una forma de lograrlo sin darle un nombre de instancia
diferente a cada boton, incluso sin darle nombre de instancia
estuve probando pero no lo logre
quizas alguien que sepa mas de actionscript
pueda simplicar ese scripte
sino igual funciona pero mientras mas simple se pueda hacer mejor

espero os sirva


aca va otra
otra forma un poco mas compleja
que la anterior

tenes el MC
aca no necesitas darle nombre de instancia al MC

script para el MC

onClipEvent(enterFrame){
distanciax = _root.destinox-this._x;
veloMoverx = distanciax/5;
this._x += veloMoverx;
}

ahora haces el boton no importa el nombre de instancia
ponele esta accion al boton

on (rollOver) {
_root.destinox=_x;
}

y tb asignale la accion que quieras que realice
luego selecciona el boton y convertilo en un nuevo MC
a mi no me funciona sino lo convierto en un MC

bueno y listo esa accion la tiene que tener cada boton

tb podes hacerlo con botones que esten diferente x e y
pero vos lo queres mover solo en x no?

bueno espero os sirva
sldos y suerte
  #10 (permalink)  
Antiguo 25/03/2005, 14:50
Avatar de Maximillian  
Fecha de Ingreso: marzo-2005
Ubicación: México
Mensajes: 261
Antigüedad: 19 años, 8 meses
Puntos: 0
Exclamación Me explique mal

Creo que realmente no me exprese bien.
Primero que nada empezemos de cero
supongamos que tenemos dos botones(boton derecho y boton izquierdo),uno del lado izquierdo y otro en el derecho. Ahora, al principio tenemos un rectángulo(cuadro_mc) que esta en el centro, es decir en medio de los botones. Luego, yo pongo mi cursor encima del boton izquierdo y cuando hago eso el rectangulo que esta en el centro empieza a acercarse al botón, siguiendo siempre la misma linea del eje "y" pero variando(por ej) 5 pixeles por seg de acuerdo al eje "x"; entonces llega el momento en que alcanza al botón y lo rodea(al boton, no al mouse). Luego yo quito mi mouse(y lo pongo en otro lugar que queda fuera de la linea "y" del rectángulo), pero el rectángulo se queda donde esta. Pongo mi cursor en el centro pero el rectángulo sigue donde esta(en el botón izquierdo). Entonces pongo el cursor del mouse encima del botón derecho, y en ese momento el rectángulo empieza a acercarse hasta que rodea al boton derecho.

Espero que con esto me haya dado a entender
  #11 (permalink)  
Antiguo 25/03/2005, 14:52
Avatar de webgeri  
Fecha de Ingreso: marzo-2005
Ubicación: montevideo
Mensajes: 374
Antigüedad: 19 años, 8 meses
Puntos: 0
pues eso mismo esta en alli fijate y probalo
  #12 (permalink)  
Antiguo 25/03/2005, 16:06
Avatar de Maximillian  
Fecha de Ingreso: marzo-2005
Ubicación: México
Mensajes: 261
Antigüedad: 19 años, 8 meses
Puntos: 0
Perdón, es que no había leido tu respuesta. Ya lo probe, pero tengo un problema cuando empieza(osea cuando pongo test movie) al principio, el marco(el rectangulo que debe envolver a los botones) se mueve de tal manera que su centro coincide con los limites del escenario(luego de ahi, ya puedo seleccionar un botón y todo sale bien)
Pero el problema es que yo quiero que al principio el rectángulo este donde yo lo ponga(por ejemplo en el centro)
  #13 (permalink)  
Antiguo 25/03/2005, 16:12
Avatar de webgeri  
Fecha de Ingreso: marzo-2005
Ubicación: montevideo
Mensajes: 374
Antigüedad: 19 años, 8 meses
Puntos: 0
en cualquiera de los dos scripts
el MC deberia de quedarse donde este al inicio
y solo moverse cuando te posas sobre un boton

chequea que este todo tal cual esta arriba
sino escribe los scripts que estas asignando y donde

sldos
  #14 (permalink)  
Antiguo 25/03/2005, 16:23
Avatar de Maximillian  
Fecha de Ingreso: marzo-2005
Ubicación: México
Mensajes: 261
Antigüedad: 19 años, 8 meses
Puntos: 0
Ya lo cheque y el problema es del MC. Ya que lo tengo creado le pongo botón derecho y selecciono actions y luego copio

onClipEvent(enterFrame){
distanciax = _root.destinox-this._x;
veloMoverx = distanciax/5;
this._x += veloMoverx;
}

y luego lo probe, y paso lo que te describi anteriormente
  #15 (permalink)  
Antiguo 25/03/2005, 16:31
Avatar de webgeri  
Fecha de Ingreso: marzo-2005
Ubicación: montevideo
Mensajes: 374
Antigüedad: 19 años, 8 meses
Puntos: 0
a mi me funciona bien no se mueve a no ser que pase el mouse por sobre alguno
de los botones
tienes esa accion en el MC
las acciones en los botones y nada mas?

pasame el .fla y lo reviso si queres

[email protected]
  #16 (permalink)  
Antiguo 25/03/2005, 18:59
Avatar de Maximillian  
Fecha de Ingreso: marzo-2005
Ubicación: México
Mensajes: 261
Antigüedad: 19 años, 8 meses
Puntos: 0
no lo puedo enviar, parece que hay un problema con el servidor. Por que mejor no me envias a mi correo el archivo fla bien hecho(con los dibujos que sean y luego yo ya lo edito como yo quiera. Solamente te pido que si puedes me los envies en versión
flash 5.0 r6.
Saludos
  #17 (permalink)  
Antiguo 25/03/2005, 20:29
Avatar de Maximillian  
Fecha de Ingreso: marzo-2005
Ubicación: México
Mensajes: 261
Antigüedad: 19 años, 8 meses
Puntos: 0
Se me olvido poner mi email
[email protected]
  #18 (permalink)  
Antiguo 26/03/2005, 01:08
Avatar de Maximillian  
Fecha de Ingreso: marzo-2005
Ubicación: México
Mensajes: 261
Antigüedad: 19 años, 8 meses
Puntos: 0
Ahora si, ya te lo envie. Un archvio simple pero con el erro que te decia.

Saludos
  #19 (permalink)  
Antiguo 26/03/2005, 02:59
Avatar de webgeri  
Fecha de Ingreso: marzo-2005
Ubicación: montevideo
Mensajes: 374
Antigüedad: 19 años, 8 meses
Puntos: 0
agregale esto

okey lo envio alli

me doy cuenta que estas usando flash 5
pobre guardar el archivo para flash 5
y pasa lo que tu dices
me temo que quizas para el flash 5 alla algo del codigo que no lo toma bien
pero pobre agregandole esta accion al inicio de script del MC y funciono

si el MC que vamos a mover esta en la posicion por ej. x=250
entonces agrega esto

onClipEvent (load) {
_root.destino=250;
}

cambia el numero segun la posicion inicial de tu MC a mover

listo entonces las acciones quedarian asi

script para el MC que moves

onClipEvent (load) {
_root.destino=250;
}

onClipEvent (enterFrame) {
distancia = _root.destino-this._x;
this._x += distancia/5;
}

script para los botones

on (rollover) {
_root.destino=_x
}

acordate que los botones luego de creados tenes que convertirlos en MC

te paso el archivo
cualquier duda consulta

sldos y suerte

p.d.: quizas se pueda resolver de otra forma mas sencilla pero no se me ocurre como

os paso tb un link de un sitio donde hay muchos ejemplos de estas cosas
muy bien explicadas
http://www.x-flash.org/
http://www.x-flash.org/as/docs/movimiento6.htm
  #20 (permalink)  
Antiguo 26/03/2005, 19:46
Avatar de Maximillian  
Fecha de Ingreso: marzo-2005
Ubicación: México
Mensajes: 261
Antigüedad: 19 años, 8 meses
Puntos: 0
Perdon por no haber respondido inmediatamente pero hubo otro problema con el servidor.
Pero con respecto al tema; La verdad te agradezco muchísimio tu ayuda. Lo probe y me salió a la perfección. Esto me ayuda muchísmo

Saludos
  #21 (permalink)  
Antiguo 28/03/2005, 13:00
Avatar de Maximillian  
Fecha de Ingreso: marzo-2005
Ubicación: México
Mensajes: 261
Antigüedad: 19 años, 8 meses
Puntos: 0
Oye, para hacer que esto se mueva en lugar de horizontal a vertical; ¿simplemente en lugar de x pongo y?

Saludos
  #22 (permalink)  
Antiguo 04/04/2005, 21:33
Avatar de Maximillian  
Fecha de Ingreso: marzo-2005
Ubicación: México
Mensajes: 261
Antigüedad: 19 años, 8 meses
Puntos: 0
Me pueden decir alguna forma que esto funcione(que el marco se mueva hacia el boton cuando lo seleccione) pero de tal manera que solo funcione cuando le de click al boton(es decir que el marco solo se mueva cuando yo de click al boton)

Espero que me puedan ayudar
  #23 (permalink)  
Antiguo 04/04/2005, 21:43
Avatar de webgeri  
Fecha de Ingreso: marzo-2005
Ubicación: montevideo
Mensajes: 374
Antigüedad: 19 años, 8 meses
Puntos: 0
tienes el archivo anterior

en la accion del boton antes ponias

on (rollover) {
_root.destino=_x
}


ahora cambialo y pon asi

on (press) {
_root.destino=_x

}

sldos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:18.