gpt4 book ai didi

javascript - 在 EaselJS 中拖动容器

转载 作者:太空狗 更新时间:2023-10-29 15:41:18 29 4
gpt4 key购买 nike

我想在 EaselJS 中用我的鼠标创建一个平移功能。是否可以以可拖动的方式填充容器。或者是否有另一种类似的解决方案,我可以在我的 Canvas 上移动一组子元素?现在,只有子元素是可拖动的。

这是我的:

var canvas = document.getElementById('canvas');
canvas.width = 1000;
canvas.height = 550;
var stage = new createjs.Stage(canvas);
var container = new createjs.Container();
stage.addChild(container);
container.addEventListener("pressmove", function (evt) {
evt.target.set({
x: evt.stageX,
y: evt.stageY
});
stage.update();
});

最佳答案

尝试在您的容器中创建一个填充的背景项目,以便在用户与容器交互的任何地方触发 pressmove 事件。此外,更改事件处理程序中的代码,使其作用于事件对象的 currentTarget,在本例中,事件对象将是容器 (fiddle):

var canvas = document.getElementById('canvas');
canvas.width = 1000;
canvas.height = 550;

var stage = new createjs.Stage(canvas);
var container = new createjs.Container();
stage.addChild(container);

container.addEventListener("pressmove", function (evt) {
console.log('press');
evt.currentTarget.set({
x: evt.stageX,
y: evt.stageY
});
stage.update();
});

// Add a background
var bg = new createjs.Shape();
bg.graphics.beginStroke("#000");
bg.graphics.beginFill("#fff");
bg.graphics.setStrokeStyle(1);
bg.graphics.drawRect(0, 0, 400, 400);

container.addChild(bg);

// Add a thing
var square = new createjs.Shape();
square.graphics.beginFill("#000");
square.graphics.drawRect(0, 0, 50, 50);
square.x = 100;
square.y = 100;

container.addChild(square);

stage.update();

关于javascript - 在 EaselJS 中拖动容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21385293/

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