将可拖动的MC捕捉到预设位置

时间:2014-04-04 09:48:34

标签: actionscript-3 flash actionscript

首先让我解释一下,我们对AS3的大部分知识都来自Flash cs5 / 5.5 / 6中的一些交互式动画中使用的一小部分,而不是来自编程背景,大部分只是开始理解一些html& jQuery的。有很多例子都有我们想要的一两位,但由于我们缺乏对AS3的了解,很难将这些代码改为有效的。我们尝试了几件事但没有太多结果。在这一点上,我们宁愿投入一些额外的工作,让它做我们想做的事情,然后让它用一些我们不理解的代码行完成。我们实际上已经看到了很多Jquery滑块等也可以解决我们的问题,但我们的知识如果可能的话与我们项目的其余部分结合起来是不存在的。

我们正在W7触摸屏上进行交互式演示(输入作为鼠标事件处理),世界地图细分为4-5个区域,每个区域有30多个兴趣点,这些都将脱机并全屏播放在一个Flash播放器中。对于这些兴趣点,我们希望以某种幻灯片(或类似的东西)的形式显示弹出的更多信息/照片/视频。我们对子区域的放大动画效果非常好并且包含所有要点感兴趣的是具有自己的实例ID /名称的符号。我们认为如果将所有内容都放在一个非常宽的范围内并且将其细分为“幻灯片”(5倍的屏幕宽度,例如内容为5“幻灯片”),我们就可以轻松获取所有内容,并制作该MC可以在X轴上拖动并抓住屏幕上有一个“幻灯片”的位置,最好所有这些都很容易让它看起来很光滑。

Here是指向“AS3如何仅在x轴上启动磁盘?”的链接。它在非常宽的MC上运行良好,使用户能够在X轴上从一侧向另一侧拖动。

现在我们希望能够轻松地将其捕捉到预设的位置。

我们正在思考:X位置向左移动超过25%,它将轻松地捕捉到下一个预设位置。

我们看到它的方式是否完全可行?还是有其他方法可以做到这一点?

如前所述,我们没有编程背景,很可能我们错过了程序员导向的非常明显的选择。

1 个答案:

答案 0 :(得分:0)

你需要的不是实际的dragging,而是模拟它,因为你想要轻松地将对象移动到某个位置,拖动实际上是随着鼠标一起移动特定对象光标。

所以你可以做的并不复杂 - 检查鼠标点击你的对象并保存鼠标位置。添加用于鼠标移动的侦听器。当鼠标移动时,检查它是否仍然按下(为MOUSE_DOWN,MOUSE_UP添加事件).IF鼠标按下,每次更新时检查它的位置。如果位置更接近您的下一个点 - 使用某个补间移动对象。如果释放鼠标,则可以停止跟踪是否移动。

您实际要做的是跟踪鼠标按下,移动和释放的时间。在按下和释放的瞬间,您将跟踪它的位置并为与光标对应的对象设置动画(例如,如果您有两个'位置'在0和100,如果光标在0到50之间 - 动画到左边;如果是50到100之间 - 动画到第二个位置。)

你仍然需要一些编程技巧,并且没有简单的方法向你展示它是如何完成的,因为我不知道你的实际结构。

希望有所帮助!