这个jsfiddle最好地说明了我的问题http://jsfiddle.net/sdg9/YYUrm/
circle.addEventListener("mousedown", function (evt) {
if (evt.nativeEvent.button === 0) {
square = new createjs.Shape();
square.graphics.beginFill("blue").drawRect(0, 0, 100, 100);
makeDraggable(square);
stage.addChild(square);
stage.update();
//How do I give focus to drag blue square without having to click again?
}
});
我有一个物体(红色圆圈),在mousedown上为画布添加了另一个形状(蓝色方块)。 可以在画布上拖动蓝色方块。
我想在红色圆形的mousedown上创建一个蓝色正方形,如果我还处于mousedown状态,它会立即拖动。目前我必须在蓝色方块上手动执行第二次mousedown来拖动它。
我不知道是否需要给出蓝色正方形焦点,以编程方式触发事件,或者做其他事情以使其正常工作。任何指导都将不胜感激。
答案 0 :(得分:1)
你可以做的就是听圈子上的“pressmove”事件,但你要拖的是你刚创造的广场:
circle.addEventListener("pressmove", function (evt) {
if (evt.nativeEvent.button === 0) {
evt.target.topObj.x = evt.stageX;
evt.target.topObj.y = evt.stageY ;
stage.update();
}
});
并且topObj对象保存在“mousedown”事件中:
circle.addEventListener("mousedown", function (evt) {
if (evt.nativeEvent.button === 0) {
// Create your square
...
// Then save it as the square on top of the circle
evt.target.topObj = square;
}
});