From b018a5fd9a82c80eec3e6d9340f125c2a5a46c50 Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Sat, 21 Dec 2024 23:51:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BC=A9=E6=94=BE=E5=90=8E=E7=94=BB?= =?UTF-8?q?=E9=9D=A2=E6=B6=88=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/render/components/textbox.tsx | 1 - src/core/render/render.ts | 18 +++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/core/render/components/textbox.tsx b/src/core/render/components/textbox.tsx index 95d6596..976a955 100644 --- a/src/core/render/components/textbox.tsx +++ b/src/core/render/components/textbox.tsx @@ -345,7 +345,6 @@ export const TextContent = defineComponent( * 从头开始渲染 */ const rawRender = (text: string, lines: number[]) => { - console.trace(); makeRenderable(text, lines, 0, 0); spriteElement.value?.update(); }; diff --git a/src/core/render/render.ts b/src/core/render/render.ts index 08dbfca..6f02769 100644 --- a/src/core/render/render.ts +++ b/src/core/render/render.ts @@ -84,11 +84,27 @@ export class MotaRenderer extends Container { this.target.delete(); } + /** + * 刷新所有元素 + */ + refreshAll() { + const stack: RenderItem[] = [this]; + while (stack.length > 0) { + const item = stack.pop(); + if (!item) break; + if (item.children.size === 0) { + item.update(); + } else { + item.children.forEach(v => stack.push(v)); + } + } + } + static get(id: string) { return this.list.get(id); } } window.addEventListener('resize', () => { - MotaRenderer.list.forEach(v => v.update(v)); + MotaRenderer.list.forEach(v => v.requestAfterFrame(() => v.refreshAll())); });