views:

32

answers:

1

hello! :) i've to write a simple method, wich allow me to move a movieclip inside another one, like in http://www.cballestimenti.it/ (i've to move it in vertical, instead of horizontal).

i've write this simple code but it seems to not work properly...can anyone help me? thanks a lot in advance!

public function factor():void
{
    thumbs.addEventListener(MouseEvent.MOUSE_MOVE, moveSlide);
    factor = ((content.height)/container.height);
}

private function moveSlide(e:MouseEvent):void
{
    if (container.mouseX>=0 && container.mouseX<=container.width && container.mouseY>=0 && container.mouseY<=container.height)
    {
        TweenMax.to(content, 0.3, { y:(-(container.mouseY)*factor) });
    }
}
+1  A: 

Would be better if you tell us WHY or HOW it's "not work properly". And give us any errors that your are getting.

I do see a few things wrong straight away. First, you are setting a public method called factor, then inside that method, you set factor to a number! So what is factor? Is it a function or a number?

Secondly, I think you are having issues with scope. Since you do not explain the layout of your assets, I am assuming that you have three MovieClips, called container, content, and thumbs. But I have no idea if content is inside the container. And I can't see why you would have MovieClips called thumbs and content.

I am going ignore the thumbs MC and just use content. I will assume the content MC is inside the container MC. I came up with this:

var maxHeight:Number = 400;
stage.addEventListener(MouseEvent.MOUSE_MOVE, moveSlide);

function moveSlide(e:MouseEvent):void
{
    var mouseFactor:Number = container.mouseY / maxHeight;
    var targetY:Number = (container.content.height - maxHeight) * -mouseFactor;
    container.content.y = targetY;
}

Try to get it working without all the tween stuff first. Then once you get your maths working, it's easy to add effects in.

TandemAdam
thanks a lot man, im really sorry for the example, your snippet works very well, just added some tweening and so on.thanks again!
Luca