Comunidad de diseño web y desarrollo en internet online

Avanzar fotogramas arrastrnado el mouse.

Citar            
MensajeEscrito el 31 Jul 2008 06:42 pm
Hola, me gustaría saber de que forma se puede hacer para que al presionar y arrastrar el mouse de izquierda a derecha cierto clip avance o retroceda.
Para dejar mas claro esto tengo un clip que contiene 20 fotogramas. los cuales serian la animación 3d de un cubo, yo lo que busco es que cuando presione y arrastre el mouse hacia la derecha el cubo gire en sentido antihorario y que cuando presione y arrastre hacia la izquierda el cubo gire en sentido horario.

Espero que alguien me pueda ayudar, saludos.

Por wishmaster

46 de clabLevel



 

msie
Citar            
MensajeEscrito el 31 Jul 2008 06:52 pm
Lo que se podría hacer es crear una variable que al hacer click obtenga la posición X del mouse (por ejemplo de nombre varXmouse) y luego le pondría un IF masomenos así:

Código :

if (this._xmouse > varXmouse) {
    this.nextFrame();
} else if (this._xmouse < varXmouse) {
    this.prevFrame();
}

No se si está correcto, pero tal vez lo que te digo te pueda ayudar a pensar la solución.
Saludos.

Por Guillon

20 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 31 Jul 2008 08:20 pm

Guillon escribió:

Lo que se podría hacer es crear una variable que al hacer click obtenga la posición X del mouse (por ejemplo de nombre varXmouse) y luego le pondría un IF masomenos así:

Código :

if (this._xmouse > varXmouse) {
    this.nextFrame();
} else if (this._xmouse < varXmouse) {
    this.prevFrame();
}

No se si está correcto, pero tal vez lo que te digo te pueda ayudar a pensar la solución.
Saludos.

Guillon gracias por la data. llegue a algo asi:

Código :

this.onMouseDown = function() {
   varXmouse = 250;
   if (this._xmouse>varXmouse) {
      miclip.nextFrame();
   } else if (this._xmouse<varXmouse) {
      miclip.prevFrame();
   }
};

varXmouse = 250; seria la mitad del clip ahora sigo sin saber como hacer para que funcione el presionar y arrastrar y el otro problema que no pude solucionar es que si estoy en el f20 tendria que irme al f1 y si estoy en el f1 al f20 para evitar que se detenga todo, probe poner unos fi con currentframe pero no me los tomo correctamente hacia saltos del f2 al f18

Por wishmaster

46 de clabLevel



 

msie
Citar            
MensajeEscrito el 31 Jul 2008 09:34 pm
Prueba esto a ver si te gusta:

El movie de la animación se llama "anima" y las acciones están en el frame.

Código :

this.onMouseDown = function():Void{
   
   var iniX:Number;
   var anima:MovieClip = _root.anima;
   var sum:Number = 0;
   
   this.onEnterFrame = function():Void{
      
      iniX = this._xmouse;
      
   }
   
   this.onMouseMove = function():Void{
      
      var actualX:Number = this._xmouse;      
      var dif:Number = Math.round(actualX - iniX);
      
      if(dif > 0){
      
         anima.nextFrame();
      
      }else if(dif < 0){
         
         anima.prevFrame();
         
      }
      
      if(anima._currentframe == anima._totalframes && dif > 0){
         
         sum++;
         
         if(sum == 2){
         
            anima.gotoAndStop(1);
            sum = 0;
         
         }
         
      }else if(anima._currentframe == 1 && dif < 0){
         
         sum++;
         
         if(sum == 2){
         
            anima.gotoAndStop(anima._totalframes);
            sum = 0;
         
         }
         
      }
      
   }
   
}

this.onMouseUp = function():Void{
   
   delete this.onMouseMove;
   delete this.onEnterFrame;
   
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Ago 2008 01:31 am
elchininet muchas gracias, era justamente lo que buscaba.
tengo una duda se puede lograr que no varie la velocidad de giro? porque note que se voy mas hacia los costados tiende a rotar mas rapido.

Por wishmaster

46 de clabLevel



 

msie
Citar            
MensajeEscrito el 01 Ago 2008 09:39 am
La solución para esto es hacer más frames para tu animación, analiza que 20 frames son menos de dos segundos en un flash a 12 fps, si aumentas tus frames por lo menos a 5 segundos, ojo no duplicar tu animación hasta llegar a 5 segundos, sino exportar tu animación desde el software que lo estés haciendo aumentando el tiempo que demora el cuadro en dar un giro completo, me parece que no verás este desagradable efecto.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 11 May 2009 11:25 pm
Hola, se le puede poner una desaceleracion cuando se suelta el mouse para q no se detenga de inmediato sino con el efecto ????

Por Loop

67 de clabLevel



Genero:Masculino  

safari

 

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