mover objeto ao movimento do mouse.
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,
Discussão (2)
Carregando comentários...