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())); });