Comunidad de diseño web y desarrollo en internet online

repeler un MovieClip con el Mouse

Citar            
MensajeEscrito el 18 Ago 2008 02:50 pm
Saludos

Quisiera saber como puedo hacer para que un movieclip repela el mouse cuando este pase cerca de el y luego regrese a su posicion original... o por lo menos por donde tengo que comenzar para llegar a eso... Gracias

Por Angeluz83

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ago 2008 05:06 pm
La fórmula matemática se basaría en como quisieras realizar este efecto, depende de en que dirección con respecto al mouse quieres que se mueva tu objeto. Pero lo básico es crear un onEnterFrame con los cálculos de donde se encuentra el mouse y el movieClip y en caso de que se acerquen a una distancia "X" entonces debes mover el movie al lugar que hayas decidido.

Aquí tienes un pequeño ejemplo, no se si cumple tus espectativas:

Código ActionScript :

//---Valor que debe alejarse y valor al que permite acercarse

var alejarse:Number = 50;
var cerca:Number = 50;

var newX:Number = this.bola._x;
var newY:Number = this.bola._y;

//---Funcion de movimiento
this.bola.onEnterFrame = function():Void {
   
   var difX:Number = this._x - _root._xmouse;
   var difY:Number = this._y - _root._ymouse;
   
   var hipot:Number = Math.sqrt(difX * difX + difY * difY);
   
   if(hipot < cerca){
      
      var incX:Number = difX * (hipot + alejarse) / hipot;
      var incY:Number = difY * (hipot + alejarse) / hipot;
      
      newX = this._x + incX;
      newY = this._y + incY;
      
   }
   
   var X:Number = (newX - this._x) * .25;
   var Y:Number = (newY - this._y) * .25;
   
   this._x += X;
   this._y += Y;
   
};

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 19 Ago 2008 02:19 am
Para que se aleje del mouse puedes usar random:

Código :

a = 0;
candado.onRollOver = function ()
{
    candado._x = random(210);
    candado._y = random(280);
};
candado.onPress = function ()
{
    function ladilla()
    {
        parrot._alpha = parrot._alpha - 2;
        if (parrot._alpha <= 0)
        {
            clearInterval(aja);
        } // end if
    } // End of the function
    aja = setInterval(ladilla, 40);
};
este.onPress = function ()
{
    if (a == 0)
    {
        a = 1;
        boom.gotoAndPlay(2);
        
    } // end if
};




Por lo otro, que vuelva al sitio original.... se creativo :lol:

Ya con los ejemplos puedes lograr lo que estas pidiendo

Por Jackguardian

39 de clabLevel



Genero:Masculino  

firefox

 

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