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

como se hace esto?

Estas en el tema de como se hace esto? en el foro de Flash y Actionscript en Foros del Web. Amigos, quisiera aplicar el efecto de mover un cuerpo sobre su propio eje con el movimiento del mouse tal como se ve en esta esta ...
  #1 (permalink)  
Antiguo 12/01/2006, 18:04
 
Fecha de Ingreso: agosto-2004
Mensajes: 237
Antigüedad: 19 años, 8 meses
Puntos: 0
como se hace esto?

Amigos, quisiera aplicar el efecto de mover un cuerpo sobre su propio eje con el movimiento del mouse tal como se ve en esta esta especie de timon o brujula en : http://www.tattoonm.com/index_main.htm
alguien me podria explicar el codigo que no debe ser muy complicado.
Desde ya gracias !!!!

German
__________________
germanplus
  #2 (permalink)  
Antiguo 13/01/2006, 12:36
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Hola germanplus:
Una forma de hacerlo sería así:
Crea la animación de las agujas de la brújula por ejemplo en 15 frames con la opción de girar en sentido del reloj.
En el escenario coloca el MC y le pones como nombre de instancia: my_mc.
En el primer frame de la principal coloca éste código:
function forward() {
this.onEnterFrame = function() {
this.nextFrame();
if (this._currentframe == this._totalframes) {
delete this.onEnterFrame;
}
};
}
function reverse() {
this.onEnterFrame = function() {
this.prevFrame();
if (this._currentframe == 1) {
delete this.onEnterFrame;
}
};
}

my_mc.stop();
my_mc.onRollOver = forward;
my_mc.onRollOut = reverse;

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #3 (permalink)  
Antiguo 13/01/2006, 12:57
 
Fecha de Ingreso: agosto-2004
Mensajes: 237
Antigüedad: 19 años, 8 meses
Puntos: 0
gracias bandit

Hice tal como me dijiste pero obtengo la ruedita girado indefinidamente y no segun la posicion del cursor, que sera ?

German
__________________
germanplus
  #4 (permalink)  
Antiguo 13/01/2006, 13:06
Avatar de Mauri1  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 558
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola

Debe ser porque no colocaste un stop en el primer frame

Última edición por Mauri1; 13/01/2006 a las 13:12
  #5 (permalink)  
Antiguo 13/01/2006, 13:11
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Si haz seguido los pasos que explico debe de funcionar sin problemas, cuenta como lo hiciste.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #6 (permalink)  
Antiguo 13/01/2006, 13:21
 
Fecha de Ingreso: agosto-2004
Mensajes: 237
Antigüedad: 19 años, 8 meses
Puntos: 0
Mauri y Bandit

Mauri, con lso stops tampoco obtengo el resultado.

Bandit: Cree' un mc llamado my_mc con un giro lo puse en el escenario y en el primer fotograma pegue el codigo que me enviaste sin cambios.
y cuando pruebo la estrella gira indefinidamente sin imporatr que haga el mouse.
__________________
germanplus
  #7 (permalink)  
Antiguo 13/01/2006, 13:43
Avatar de Mauri1  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 558
Antigüedad: 21 años, 4 meses
Puntos: 0
Ups, Perdón

No havía advertido el código my_mc.stop();

Bueno, esta animación no es como la que diste de ejemplo en aquella página, sino que funciona cuando el mouse está encima del clip (my_mc), de ahí el código onRollOver y onRollOut.

Si lo quieres hacer como en esa página, haz algunas modificaciones:

Crea dos botones sin contenido, salvo en el frame de zona activa, de modo que entre los dos botones cubran todo el escenario. Al de la izquierda nómbralo my_mc2 y al de la derecha my_mc1 y coloca este código:

Código:
function forward(clip) {
 clip.onEnterFrame = function() {
  clip.nextFrame();
  if (clip._currentframe == clip._totalframes) {
   delete clip.onEnterFrame;
  }
 };
}
function reverse(clip) {
 clip.onEnterFrame = function() {
  clip.prevFrame();
  if (clip._currentframe == 1) {
   delete clip.onEnterFrame;
  }
 };
}
my_mc.stop();
my_mc1.onRollOver = function() {
 forward(my_mc);
};
my_mc2.onRollOver = function() {
 reverse(my_mc);
};
Es el código que entregó Bandit, pero con algunas modificaciones


Última edición por Mauri1; 13/01/2006 a las 13:51
  #8 (permalink)  
Antiguo 13/01/2006, 14:07
Avatar de Mauri1  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 558
Antigüedad: 21 años, 4 meses
Puntos: 0
Ah, lo olvidaba... también puedes hacerlo de esta forma

Código:
my_mc1.onRollOver = function() {
 _root.onEnterFrame = function() {
  my_mc._rotation += 5;
 };
};
my_mc2.onRollOver = function() {
 _root.onEnterFrame = function() {
  my_mc._rotation -= 5;
 };
};
Para una rotación infinita

NOTA: Mantén los otros dos botones y quítale la animación a my_mc, ya que ahora se controla la rotación dinámicamente.

  #9 (permalink)  
Antiguo 13/01/2006, 15:32
 
Fecha de Ingreso: agosto-2004
Mensajes: 237
Antigüedad: 19 años, 8 meses
Puntos: 0
Mauri donde aplico el codigo, en el frame o en los botones ?
__________________
germanplus
  #10 (permalink)  
Antiguo 13/01/2006, 15:51
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
En el frame obviamente
  #11 (permalink)  
Antiguo 14/01/2006, 04:57
Avatar de Mauri1  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 558
Antigüedad: 21 años, 4 meses
Puntos: 0
Sí, en el frame

Cuéntanos cómo te fue... no es lo mismo de aquella página, pero por algo se comienza
  #12 (permalink)  
Antiguo 14/01/2006, 09:49
 
Fecha de Ingreso: agosto-2004
Mensajes: 237
Antigüedad: 19 años, 8 meses
Puntos: 0
te cuento mauri

paso a paso, a ver donde puede estar la falla:

1) nueva pelicula, pongo la estrella en el escenario la transformo en mc y la nombro my_mc.
2) otro layer agrego dos botones, que entre ambos cubren la escena, el de la izquierda se llama my_mc2 y el de la derecha my_mc.1.
3) otro layer que llamo acciones donde en un F6 pongo el code siguiente:

my_mc1.onRollOver = function() {
_root.onEnterFrame = function() {
my_mc._rotation += 5;
};
};
my_mc2.onRollOver = function() {
_root.onEnterFrame = function() {
my_mc._rotation -= 5;
};
};

Cuando pruebo la pelkicula, la estrella queda quieta en el lugar no importa donde mueva el cursor, y ademas se me forman las manitos de boton cosa que me gustaria que no ocurriera.
Gracias por tu paciencia y sigo probando.

German
__________________
germanplus
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 21:05.