gpt4 book ai didi

javascript - 如何在Smart GWT中限制拖动?

转载 作者:行者123 更新时间:2023-11-28 05:52:09 26 4
gpt4 key购买 nike

我试图在 Canvas 中拖动 Canvas 。处理我正在使用的拖动事件

addDragRepositionStartHandler, addDragRepositionMoveHandler,addDragRepositionStopHandler

处理程序。

我需要在某些条件下限制拖动。假设我想在 public void onDragRepositionMove(DragRepositionMoveEvent event) 中的 event.getX() 超过 500 时限制拖动。

我尝试了event.cancel();,但它没有达到目的。我所需要的只是限制拖动。

感谢任何形式的帮助。

最佳答案

看看this展示演示。从演示中提取的一些相关代码:

    DragPiece green = new DragPiece("pawn_green.png"){  
@Override
protected boolean setDragTracker() {
String html = Canvas.imgHTML("pieces/24/pawn_green.png", 24, 24);
EventHandler.setDragTracker(html);
return false;
}
};
green.setID("greenPiece");
green.setTitle("Green Piece");
green.setLeft(150);
green.setTop(50);


final Label label = new Label("Drop Here");
label.setLeft(250);
label.setTop(50);
label.setShowEdges(true);
label.setAlign(Alignment.CENTER);
label.setCanAcceptDrop(true);
label.addDropOverHandler(new DropOverHandler() {
public void onDropOver(DropOverEvent event) {
label.setBackgroundColor("#FFFF88");
}
});

label.addDropOutHandler(new DropOutHandler() {
public void onDropOut(DropOutEvent event) {
label.setBackgroundColor("#ffffff");
}
});

label.addDropHandler(new DropHandler() {
public void onDrop(DropEvent event) {
Canvas target = EventHandler.getDragTarget();
SC.say("You dropped the " + target.getID());
}
});

关于此代码的一些注释:

  1. 请注意如何使用标签来定义放置区域,但您也可以使用其他 Canvas 对象来实现此目的。
  2. addDropOverHandleraddDropOutHandleraddDropHandler 方法允许您将所需的处理程序添加到此 LabelCanvas 对象来产生所需的结果。
  3. DragPiece 只是 Img 的子类,它具有 setCanDragReposition(true)setCanDrop(true),因此元素是可拖动的。

关于javascript - 如何在Smart GWT中限制拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37994926/

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