0

问题

我正在使用Adob​​e Scene7 BasicZoomViewer,我正在寻找一种方法来告诉 ZoomViewer 重置缩放,以便用户不再放大图像,而是显示默认的“缩放”级别。

我发现了什么

我发现最接近我需要的是这个重置属性ZoomView.reset,它“在帧(图像)更改时重置视口。如果设置为 0,它会保留当前视口的最佳拟合,同时保持画面的纵横比新设置的图像”。

这看起来很接近我需要的东西,但它指出当插入新图像但我没有插入新图像时它将重置或保留纵横

Adobe 的演示

图像上有一个 API 插入页面的按钮,用于重置缩放级别。Adobe 提供了一个演示页面,展示了我正在使用的内容。如果你看左下角,最右边的按钮是重置按钮。单击时,它必须进行某种 API 调用,我需要弄清楚它是哪一个。

编辑

我已经能够找到BasicZoomViewer的缩小版本,我目前正在尝试理解代码。

在“缩放重置按钮”上放置了一个事件侦听器,它只是简单地在文件的丑化版本中的第274 行调用reset()方法。目前,我正在尝试理解该文件并弄清楚如何访问此方法。

c.zoomResetButton.addEventListener("click", function () {
  c.zoomView.zoomReset()
});
4

1 回答 1

0

我将回答我自己的问题。如果有人找到更好的方法,请随时回答。

tldr;

创建一个变量来保存s7viewers.BasicZoomViewer()的实例,在其中您可以访问事件处理程序等等。

调用重置缩放处理程序的示例

// instantiate the s7viewers class and save it in a variable
var s7BasicZoomViewer = new s7viewers.BasicZoomViewer({
  containerId: 's7viewer',
  params: {
    asset: assetUrl,
    serverurl: serverUrl
})

// example of how to call the "zoomReset()" method
s7BasicZoomViewer.zoomResetButton.component.events.click[0].handler()

解释

在挖掘了被丑化的缩小代码后,我在s7zoomresetbutton DOM 类名称上找到了一个事件侦听器,或者它正在监视该 DOM 元素的 ID,该 ID 与S7 BasicZoom Viewer的容器 div 的 ID 相同,并添加了一些文本使此 ID 唯一。例如,如果容器 div 是s7viewer,那么重置缩放按钮的 ID将为 s7viewer_zoomresetbutton

现在,通过代码我发现了这个事件监听器,它让我知道必须有某种方法可以调用zoomReset()方法。

c.zoomResetButton.addEventListener("click", function () {
  c.zoomView.zoomReset()
});

在上面的代码中,c的值是this,或者换句话说,它是S7 BasicViewerZoom的实例,在我的情况下,我有多个,具体取决于我需要放大多少张图像。

在实例化s7viewers类时,您可以稍后引用该实例并访问每个按钮上的事件处理程序以及其他属性和方法。

从那里它只是查看从实例返回的对象并调用重置按钮的处理程序。

于 2019-05-03T21:01:12.547 回答