use*_*511 5 javascript html5 canvas easeljs
我想用EaselJS中的鼠标创建一个pan函数.是否可以以可以使其拖拽的方式填充容器.或者是否有另一个类似的解决方案,我可以在画布上移动一组子元素?现在,只有子元素可以拖动.
这就是我所拥有的:
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();
});
Run Code Online (Sandbox Code Playgroud)
尝试在容器中创建填充的背景项,以便pressmove在用户与容器交互的任何位置触发事件.此外,更改事件处理程序中的代码,使其作用于currentTarget事件对象,在这种情况下,它将是容器(小提琴):
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();
Run Code Online (Sandbox Code Playgroud)