我要编写一个简单的方法,允许我将动画片段移动到另一个中,例如在http://www.cballestimenti.it/中(我要将它移动到垂直方向而不是水平方向)。
我写了这个简单的代码,但它似乎无法正常工作......任何人都可以帮助我吗?非常感谢!
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) });
}
}
答案 0 :(得分:1)
如果你告诉我们为什么或如何“不正常”会更好。并且告诉我们你得到的任何错误。
我确实看到了一些错误。首先,您要设置一个名为factor
的公共方法,然后在该方法中,将factor
设置为一个数字!那么factor
是什么?它是函数还是数字?
其次,我认为你的范围问题。由于您没有解释资产的布局,我假设您有三个MovieClip,称为容器,内容和拇指。但我不知道内容是否在容器内。我不明白你为什么会把MovieClip称为拇指和内容。
我要忽略拇指MC而只是使用内容。我将假设内容MC在容器MC内。我想出了这个:
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;
}
首先尝试让它在没有所有补间内容的情况下工作。然后,一旦你的数学工作,就可以很容易地添加效果。