此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?
}
});
我有一个对象(红色圆圈),在鼠标按下时向画布添加了另一种形状(蓝色正方形)。可以在画布上拖动蓝色方块。
我想在鼠标悬停红色圆圈时创建一个蓝色正方形,如果我仍处于鼠标悬停状态,则可以立即拖动它。目前,我必须手动在蓝色方块上进行第二次鼠标向下拖动,以将其拖动。
我不知道是否需要给予蓝色方形焦点,以编程方式触发事件或执行其他操作以使此工作正常进行。任何指导将不胜感激。
您可以做的就是也听圆上的“ 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;
}
});