#
luxiaotao1123
2024-03-16 20d4a002ea62a173ed8689613503c1f03ab1c7f1
#
2个文件已修改
31 ■■■■■ 已修改文件
zy-asrs-flow/src/pages/map/header/search.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-flow/src/pages/map/utils.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-flow/src/pages/map/header/search.jsx
@@ -116,7 +116,11 @@
                value={curSensorLabel}
                onSelect={(value, option) => {
                    const uuid = option.label?.props?.children?.[1].props.children;
                    setCurSensor(Utils.findSpriteByUuid(uuid));
                    const selectSensor = Utils.findSpriteByUuid(uuid);
                    setCurSensor(selectSensor);
                    if (selectSensor) {
                        Utils.beCenter(selectSensor);
                    }
                }}
                onChange={setCurSensorLabel}
            />
zy-asrs-flow/src/pages/map/utils.js
@@ -344,7 +344,7 @@
                mapContainer.addChild(sprite);
            }
        })
    }).catch((error) => {
        console.error(error);
    })
@@ -404,4 +404,27 @@
        });
        childList = [];
    }
}
export const beCenter = (sprite) => {
    if (!sprite || !app || !mapContainer) {
        return;
    }
    // 获取 sprite 的中心点坐标
    let bounds = sprite.getBounds();
    let centerPoint = {
        x: bounds.x + bounds.width / 2,
        y: bounds.y + bounds.height / 2
    };
    // 计算 sprite 应当平移的像素量以能够将其放置到屏幕中心
    let targetPos = {
        x: app.renderer.width / 2 - centerPoint.x * this.scale,
        y: app.renderer.height / 2 - centerPoint.y * this.scale
    };
    // 使用 TWEEDLE.Tween 动画库为平移过程添加过渡效果
    new TWEEDLE.Tween(mapContainer.position).easing(TWEEDLE.Easing.Quadratic.Out)
        .to(targetPos, 200).start();
}