From 59759360b78627a16eef23cfc35437e0508bcfba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Mon, 27 Jul 2026 17:10:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=B4=A0=E6=9D=90=E5=A4=9A?= =?UTF-8?q?=E9=80=89=E5=AF=BC=E5=87=BA=E6=8A=80=E6=9C=AF=E5=8F=A3=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 记录全选与取消全选清空范围锚点 记录四路并发读取、同步互斥和确定性 ZIP 顺序验收 --- docs/technical/【前端架构】图片画布素材导出方案-2026-06-15.md | 3 +++ .../【前端架构】图片画布编辑器MVP接入方案-2026-06-11.md | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/technical/【前端架构】图片画布素材导出方案-2026-06-15.md b/docs/technical/【前端架构】图片画布素材导出方案-2026-06-15.md index 598069637..1c6cbb25b 100644 --- a/docs/technical/【前端架构】图片画布素材导出方案-2026-06-15.md +++ b/docs/technical/【前端架构】图片画布素材导出方案-2026-06-15.md @@ -166,6 +166,7 @@ assetObjectId > objectKey > sourceAssetId > src 2. 过滤无效图层,保留隐藏图层。 3. 按去重 key 合并图片源或序列帧源。 4. 对每个素材源读取 Blob: + - 集合导出先按图层顺序完成去重和文件名规划,再用同一个四路并发读取器读取 / 转换普通素材与序列帧,最后按规划和原帧顺序写入 ZIP;不得让响应完成顺序改变导出目录或帧顺序。 - `data:image/...` 直接转换为 Blob。 - 同源或可访问 URL 使用 `fetch` 拉取 Blob。 - 私有 generated / OSS 素材先走 `/api/assets/read-url` 换签并由浏览器直接 `fetch` OSS 签名 URL;只有换签或 OSS 字节读取失败时,才 fallback 到同源 `/api/assets/read-bytes`。 @@ -201,6 +202,8 @@ assetObjectId > objectKey > sourceAssetId > src - 序列帧导出的 `skeleton.json` 可被独立验证器解析并预览。 - 左侧素材库只选一个素材时直接下载该素材,不创建集合 ZIP。 - 左侧素材库选择多个素材时只把选中素材写入 `项目名-选中素材-YYYYMMDD-HHmmss.zip`,不混入未选素材,并继续覆盖部分失败和全部失败边界。 +- 同一事件循环内重复触发集合导出时只启动一次读取和下载;单个选中素材下载成功后显示 `选中素材已导出`。 +- 多素材与长序列帧集合导出同时读取不超过四项,外层素材无需等待前一个序列全部完成,异步读取逆序完成时 ZIP 文件与帧顺序仍保持稳定。 ## Spine JSON 验证器 diff --git a/docs/technical/【前端架构】图片画布编辑器MVP接入方案-2026-06-11.md b/docs/technical/【前端架构】图片画布编辑器MVP接入方案-2026-06-11.md index cc70c368d..d7529dbee 100644 --- a/docs/technical/【前端架构】图片画布编辑器MVP接入方案-2026-06-11.md +++ b/docs/technical/【前端架构】图片画布编辑器MVP接入方案-2026-06-11.md @@ -146,7 +146,7 @@ - 音频 / 视频素材卡和画布媒体图层必须提供稳定的非文字视觉预览:优先使用 `thumbnailSrc` / 视频 `poster`,没有真实首帧或音频封面时使用由媒体类型、素材名和地址派生的确定性视觉底图。视频图层使用原生 `