Adobe Scene7 BasicZoomViewer:如何重置缩放

时间:2019-05-03 15:14:29

标签: adobe scene7

问题

我正在与Adobe Scene7 BasicZoomViewer合作,并且正在寻找一种方法来告诉ZoomViewer重设缩放,以便用户不再放大图像,而是显示默认的“缩放”级别。

我发现的东西

我发现最需要的是此重置属性ZoomView.reset,该属性“在帧(图像)发生变化时重置视口。如果设置为0,则保留当前视口在保持新设置图像的宽高比的同时,尽可能地保持最佳匹配。”

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

来自Adobe的演示

API插入图像的页面上有一个按钮,用于重置缩放级别。 Adobe提供了demo page来显示我正在使用的工具。如果您从左下角看,最右边的按钮就是重置按钮。单击后,它必须进行某种API调用,而我需要弄清楚它是哪一个。

编辑

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

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

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

1 个答案:

答案 0 :(得分: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与容器的ID相同。您的 S7 BasicZoom Viewer 的div以及一些添加的文本,以使该ID唯一。例如,如果容器div为 s7viewer ,则重置缩放按钮的ID为 s7viewer_zoomresetbutton

现在,遍历代码,我发现此事件侦听器使我知道必须有某种方法可以调用 zoomReset()方法。

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

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

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

从那里开始,它只是浏览从实例返回的对象,并调用重置按钮的处理程序。