ActionScript 3 中基于 mouseY 的垂直滚动
Posted
技术标签:
【中文标题】ActionScript 3 中基于 mouseY 的垂直滚动【英文标题】:vertical scroll based on mouseY in ActionScript 3 【发布时间】:2011-03-11 23:35:44 【问题描述】:我必须编写一个简单的方法,它允许我将一个影片剪辑移动到另一个影片剪辑中,例如在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) );
【问题讨论】:
【参考方案1】:如果您告诉我们为什么或如何“无法正常工作”会更好。并将您遇到的任何错误告诉我们。
我确实立即发现了一些问题。首先,您设置了一个名为factor
的公共方法,然后在该方法中,您将factor
设置为一个数字!那么factor
是什么?是函数还是数字?
其次,我认为您在范围方面存在问题。由于您没有解释资产的布局,我假设您有三个 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;
先尝试在没有所有补间内容的情况下使其正常工作。然后,一旦您的数学运算正常,就很容易添加效果。
【讨论】:
非常感谢,我真的很抱歉这个例子,你的 sn-p 工作得很好,只是添加了一些补间等等。再次感谢!以上是关于ActionScript 3 中基于 mouseY 的垂直滚动的主要内容,如果未能解决你的问题,请参考以下文章
ActionScript 3 在舞台中居中一个基于左上角的元素