gpt4 book ai didi

javascript - 在 createJS/easelJS 中同时移动多个对象

转载 作者:行者123 更新时间:2023-11-27 22:45:20 26 4
gpt4 key购买 nike

我一直在一个项目的 createJS 框架中使用 easelJS,并且非常喜欢它,直到最近遇到了障碍。我有多个对象,当拖动其中一个对象时,我想同时移动这些对象。这是我目前的情况:

enter image description here

我想做的是,当红色圆圈移动时,红色十字准线也会移动,以便它们看起来“锁定”在圆圈上。与绿色圆圈相同。

通过将圆圈和十字准线添加到容器中,我已经能够完成与此非常接近的事情,如该问题的答案中所述:

Easeljs Scrollable Container

但我遇到的问题是容器实际上是一个矩形,因此我可以单击圆圈和十字准线之间的任意位置来移动容器内包含的各种对象。相反,我希望当我单击圆圈时移动对象。

有人知道如何实现这一目标吗?我是否正确地认为这可以通过 easelJS 容器以某种方式完成?

最佳答案

容器应该没问题。您可以关闭十字准线上的 mouseEnabled,使其忽略鼠标。

您还可以只存储每个十字线/圆圈的偏移量,并在圆圈移动时设置十字线位置。

这是一个快速演示: http://jsfiddle.net/lannymcnie/kah9of6e/

// Set the offset when the circle is pressed
circle.on("mousedown", function(e) {
circle.offset = new createjs.Point(crosshair.x-circle.x, crosshair.y-circle.y);
});

// Add drag and drop to each shape
circle.on("pressmove", handleDrag);
crosshair.on("pressmove", handleDrag);

function handleDrag(e) {
// Move the target to the mouse
e.target.x = e.stageX; e.target.y = e.stageY;

// If the target is the circle, also move the cross-hair
if (e.target == circle) {
// Move the cross-hair
crosshair.x = circle.x + circle.offset.x;
x.y = circle.y + circle.offset.y;
}
}

关于javascript - 在 createJS/easelJS 中同时移动多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38445120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com