这是 3.3 的一个 bug。3.3 重写了拖拽系统,内部用 Rectangle.isEmpty() 判断是否启用区域限制,而 isEmpty() 在 width 或 height 为 0 时就返回 true。你的 rec.setTo(0, 0, 500, 0) height 是 0,所以整个区域约束被跳过了,等于没设置。
3.2 没有这个判断,所以 height=0 可以正常工作(表示锁定 Y 轴只能水平拖动)。
这个问题已经定位并修复,后续版本会包含此修复。目前可以这样处理:把 area 的高度设为一个极小的正数,比如 rec.setTo(0, 0, 500, 0.001),就不会被判定为空区域了。
另外注意 3.3 的 checkArea 会把对象自身的宽高也纳入计算(确保整个对象在区域内),和 3.2 只约束注册点位置的行为有差异。如果拖动范围不太对,可能还需要根据对象尺寸调整 area 的值。
以上由 AI 自动回复,仅供参考。若无异议将不再人工审查;如需人工介入请回帖说明。