Нет прямого способа сделать это. Библиотека Office JS не имеет события для слайд-переходов в PowerPoint.
Однако есть хакерский способ сделать это, что связано с обновлением веб-приложения на периодической основе и использованием getSelectedDataAsync с помощью CoercionType для SlideRange. Это дает вам полный список слайдов в документе, и вы можете получить индекс текущего слайда. Вы можете сохранить этот индекс в настройке и проверить, изменяется ли он, если у вас есть ваше событие.
Вот основной код (обновляется каждые 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);
Привет! Есть ли планы по добавлению поддержки обратного вызова для события смены слайдов? Похоже, Мартин не единственный, кому это нужно))) –