keepElementSize function
void
keepElementSize(
- RendererCore renderer,
- GDisplayObject obj, [
- dynamic onScale(
- ZoomEventData zoom,
- double scale
Implementation
void keepElementSize(
RendererCore renderer,
GDisplayObject obj, [
Function(ZoomEventData zoom, double scale)? onScale,
]) {
final initialScale = obj.scale;
var lastZoom = 1.0;
renderer.onZoom((zoom) {
// 累积总缩放
lastZoom = zoom.nextScale;
// 基于初始缩放值和当前画布缩放计算补偿
final newScale = initialScale / lastZoom;
obj.setScale(newScale);
onScale?.call(zoom, newScale);
});
}