Skip to content

预览窗口拖拽调整功能可能触发文件反复提交更新,效果编辑器性能也不好 #602

@MakinoharaShoko

Description

@MakinoharaShoko

1、预览窗口拖拽功能可能引发反复的文件提交。AI 分析如下,待验证:

EffectEditor 的 props.sentence 每次图形编辑器重新解析都会变成新对象,所以它的 effect 会再次触发:

EffectEditor.tsx (line 466)

它发出 editor:pixi-sync-command 后,TransformableBox 会重新挂载/刷新 Moveable:

TransformableBox.tsx (line 93)

然后 Moveable 的 onRenderEnd 会直接写回场景文件,即使不是用户真正拖拽结束:

TransformableBox.tsx (line 277)

写回后又 emit editor:drag-update-scene,图形编辑器收到后 fetchScene() 重新读场景:

dragEndUtils.ts (line 86)

GraphicalEditor.tsx (line 218)

这就解释了为什么“有的场景稳定,有的场景容易抽搐”:容易触发的场景大概率打开过或包含正在展开的 changeFigure / setTransform 效果编辑器,预览调整框参与了写回闭环。

2、效果编辑器是语句编辑块的子组件。因此更新语句后,这个子组件也被更新,并被重新渲染和打开。这严重影响了性能。应该将其设置为一个偏全局的组件,如果任何语句打开效果编辑器,就打开这个全局组件并处理那个语句的数据。

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions