From 019b1761f41a2ffaadb3a38ca86c5ea08ccee478 Mon Sep 17 00:00:00 2001 From: suzmii Date: Fri, 4 Sep 2026 15:03:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B5=84=E6=BA=90=E7=94=BB?= =?UTF-8?q?=E6=9C=AC=E9=A6=96=E6=AC=A1=E5=B8=83=E5=B1=80=E9=94=99=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 首帧测量未完成时隐藏共享场景,避免标题和卡片使用默认坐标 在首帧和资源数量变化后重新校准缩略卡布局 --- apps/ai-game-creator-shell/src/styles.css | 4 ++++ .../src/view/project-development/index.tsx | 9 ++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/ai-game-creator-shell/src/styles.css b/apps/ai-game-creator-shell/src/styles.css index 9ed191020..f375a7c05 100644 --- a/apps/ai-game-creator-shell/src/styles.css +++ b/apps/ai-game-creator-shell/src/styles.css @@ -5163,6 +5163,10 @@ iframe.preview-frame { pointer-events: none; } +.game-resource-book-scene.is-measuring { + opacity: 0; +} + .game-resource-book-scene::before { position: absolute; z-index: 0; diff --git a/apps/ai-game-creator-shell/src/view/project-development/index.tsx b/apps/ai-game-creator-shell/src/view/project-development/index.tsx index 0561b306d..ab85929d9 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/index.tsx +++ b/apps/ai-game-creator-shell/src/view/project-development/index.tsx @@ -1014,7 +1014,7 @@ function ResourceBookScene({ return (
{visibleCategoryOrder.map((category) => { const rect = overviewRects.get(category); @@ -1891,7 +1891,8 @@ export default function ProjectDevelopmentView({ measureResourceBookOverview(); const manager = resourceBookManagerRef.current; if (!manager || typeof ResizeObserver === 'undefined') { - return undefined; + const frame = window.requestAnimationFrame(measureResourceBookOverview); + return () => window.cancelAnimationFrame(frame); } const observer = new ResizeObserver(measureResourceBookOverview); observer.observe(manager); @@ -1899,11 +1900,13 @@ export default function ProjectDevelopmentView({ observer.observe(element), ); window.addEventListener('resize', measureResourceBookOverview); + const frame = window.requestAnimationFrame(measureResourceBookOverview); return () => { observer.disconnect(); + window.cancelAnimationFrame(frame); window.removeEventListener('resize', measureResourceBookOverview); }; - }, [measureResourceBookOverview, resourceBookView]); + }, [measureResourceBookOverview, resourceBookView, canvasResources.length]); const viewedResourceCategory = mode === 'resources' ? activePageCategory : null; useEffect(() => {