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 在舞台中居中一个基于左上角的元素

在Actionscript 3中整数乘法mod2³²

As3在mouseX和mouseY周围绘制位图+copyPixel

Actionscript 3 创作工具

堆叠动态文本字段 Flash/ActionScript 3

如何根据 mouseY 位置模糊/取消模糊图片 - 向下 - 模糊,向上 - 取消模糊