是否有PowerPoint加载项(应用程序)的幻灯片转换事件

时间:2015-07-31 01:01:01

标签: add-in office-addins powerpoint-2013

我正在使用PowerPoint的Office加载项。这是一个现代化的“插件”。对于Office商店,而不是旧式加载项。

更改活动幻灯片时是否有通知方式?

我的情况是,当幻灯片随着演示文稿的变化而变化时,我想在我的加载项代码中执行某些操作。

我的应用可能是此阶段的内容或任务窗格应用。

1 个答案:

答案 0 :(得分:3)

没有直接的方法可以做到这一点。 Office JS库没有PowerPoint中的幻灯片转换事件。

但是,有一种hacky方法可以执行此操作,包括定期刷新Web应用程序并使用带有SlideRange的CoercionType的getSelectedDataAsync。这为您提供了文档中的所有幻灯片,您可以从中获得当前幻灯片的索引。您可以将该索引存储在某个设置中,并检查它是否会发生变化。

这是基本代码(每1.5秒刷新一次)

//Automatically refresh
window.setInterval(function () {
//get the current slide
Office.context.document.getSelectedDataAsync(Office.CoercionType.SlideRange, function (r) {

      // null check
      if (!r || !r.value || !r.value.slides) {
        return;
      }

    //get current slides index
    currentSlide = r.value.slides[0].index;

    //get stored setting for current slide
    var storedSlideIndex = Office.context.document.settings.get("CurrentSlide");
    //check if current slide and stored setting are the same
    if (currentSlide != storedSlideIndex) {
        //the slide changed - do something
        //update the stored setting for current slide
        Office.context.document.settings.set("CurrentSlide", currentSlide);
        Office.context.document.settings.saveAsync(function (asyncResult) { });
    }

});

}, 1500);