我有一个画布,比方说尺寸为500x600。我在画布中有一些控件。用户可以通过拖放重新排列控件。但我想限制画布中的拖放。
例如:canvas中有一个按钮。用户可以将按钮拖放到画布内的任何位置。但是如果用户试图将按钮拖出画布边界,它应该粘在画布边界上。 / p>
如何实现这一目标?
答案 0 :(得分:3)
startDrag()
的签名是public function startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
第二个参数允许您传递Rectangle
作为DisplayObject
的边界。它不会被拖到这个
答案 1 :(得分:0)
您应该在目标控件上捕获MouseDown事件,然后订阅MouseMove事件。在MouseMove处理程序中,您应该获取Canvas和控件的矩形(在相同的坐标空间中)并使用containsRect()
方法(文档为here)来确定控件是否仍在Canvas中。如果它熄灭你就不应该移动它。
并且不记得在MouseUp上取消订阅MouseMove事件!