Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

linoart

mover objeto ao movimento do mouse.

Recommended Posts

Peguei esse código que faz a imagem deslizar ao movimento do mouse. Está em as2. Tentei passar pra as3... acho que fiz tudo certo e não da nenhum erro mas a imagem fica parada.

 

Gostaria de uma ajuda pra ver o que tá faltando no meu código.

Coloquei o código em as2 e o que fiz as3:

 

Obs: bg_mc é a imagem que está no palco.

 

AS2

this.onMouseMove = function() {

constrainedMove(bg_mc, 4, 1);

};
function constrainedMove(target:MovieClip, speed:Number, dir:Number) {

var mousePercent:Number = _xmouse/Stage.width;
var mSpeed:Number;
if (dir == 1) {

mSpeed = 1-mousePercent;

} else {

mSpeed = mousePercent;

}
target.destX = Math.round(-((target._width-Stage.width)*mSpeed));
target.onEnterFrame = function() {

if (target._x == target.destX) {

delete target.onEnterFrame;

} else {

target._x += Math.ceil((target.destX-target._x)*(speed/100));

}

};

}

AS3

stage.addEventListener(MouseEvent.MOUSE_MOVE, caminhaImagem, false, 0, true);

function caminhaImagem(evt:MouseEvent):void
{
    constrainedMove(4,1);
};

var imagem:MovieClip;
var velo:Number;
function constrainedMove( speed:Number, dir:Number) {

    var mousePercent:Number = stage.width/mouseX;    

    var mSpeed:Number;
    if (dir == 1) {
        mSpeed = 1-mousePercent;        
    } else {
        mSpeed = mousePercent;
    }

    
    velo = speed;
    bg_mc.destX = Math.round(-((bg_mc.width-stage.width)*mSpeed));
    bg_mc.addEventListener(Event.ENTER_FRAME, movimentar);
    
        

}

function movimentar(evt:Event):void
{
    if (bg_mc.x == bg_mc.destX)
    {
        bg_mc.removeEventListener(Event.ENTER_FRAME, movimentar);    
    } else {    
        bg_mc.x += Math.ceil((bg_mc.destX-bg_mc.x)*(velo/100));
    }
    
}

 

Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria mais ou menos isso que você queria?

 


import fl.transitions.Tween;
import fl.transitions.easing.Strong;

var posX:Number;
var _anima:Tween;

stage.addEventListener(MouseEvent.MOUSE_MOVE, desliza);

function desliza(me:MouseEvent):void{
	
	posX = mouseX;
	
	if(posX > stage.stageWidth * 0.5){
		
		_anima = new Tween(bg_mc,"x",Strong.easeOut,bg_mc.x,mouseX,2,true);
		}else if(posX < stage.stageWidth * 0.5){
			_anima = new Tween(bg_mc,"x",Strong.easeOut,bg_mc.x,mouseX,2,true);
			}
	
	
	
	}

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Kisuke, é mais ou menos isso. É que o outro script ta mais completo, esse fica travando quando a imagem se movimenta.

 

Bom, queria pegar mesmo esse script que ta em as2 é 2 pq é bem o que eu to precisando agora.

 

Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.