982 B
982 B
UI 编辑器拖动变换提交边界
当前约定
UI 编辑器预览中的节点拖动和缩放在指针移动期间只更新预览层的临时变换,不写入编辑器 State。指针松开时才把最后一次有效变换提交到 State,因此一次拖动或缩放只产生一次正式编辑更新。
指针取消、页面切换、树切换、组件卸载或没有超过拖动阈值时,不提交变换,并清理临时预览值。指针松开后的最终变换属于正常 State 修改,会参与脏状态、保存和后端持久化;仅拖动期间的临时变换不会进入这些流程。资产文件也不会因该交互被删除。
实现边界
useNodeTransformInteraction保存手势起始变换和最后一次有效变换。UiTreeRenderer通过previewTransforms渲染临时变换。canvas.updateNodeTransform仅在pointerup提交,pointercancel不提交。- 拖动和缩放继续共用单指针捕获与有限数校验。