本文介绍演示幻灯片高级接口,包含幻灯片对象、全屏、动画、播放、幻灯片播放状态、打开关闭播放缩略图的方法以及插入新的幻灯片。

幻灯片对象

  • 语法

    表达式.ActivePresentation.Slides

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //演示文稿对象
      const presentation = await app.ActivePresentation;
    
      //幻灯片对象
      const view = await presentation.Slides;
    }

全屏

进入全屏

切换到PPT全屏播放状态。

  • 语法

    表达式.ActivePresentation.SlideShowSettings.Run()

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //Slide设置对象
      const SlideShowSettings = await app.ActivePresentation.SlideShowSettings;
    
      //进入幻灯片播放模式
      await SlideShowSettings.Run();
    }

监听进入全屏

监听进入幻灯片全屏播放。

  • 语法

    表达式.Sub.SlideShowBegin = Function

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //监听进入幻灯片全屏播放
      app.Sub.SlideShowBegin = async () => {
        console.log('进入');
      };
    
      setTimeout( async () => {
        //切换到PPT全屏播放状态
        await app.ActivePresentation.SlideShowSettings.Run();
      }, 2000);
    }

退出全屏

退出PPT全屏播放状态。

  • 语法

    表达式.ActivePresentation.SlideShowWindow.View.Exit()

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //切换到幻灯片全屏播放状态
      await app.ActivePresentation.SlideShowSettings.Run();
    
      //退出PPT全屏播放状态
      setTimeout( async () => {
        await app.ActivePresentation.SlideShowWindow.View.Exit();
      }, 5000);
    }

监听退出全屏

监听退出幻灯片全屏播放。

  • 语法

    表达式.Sub.SlideShowEnd = Function

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //切换到PPT全屏播放状态
      await app.ActivePresentation.SlideShowSettings.Run();
    
      //监听退出幻灯片全屏播放
      app.Sub.SlideShowEnd = async () => {
        console.log('退出',);
      };
    
      //3000 ms后退出全屏播放
      setTimeout( async () => {
        await app.ActivePresentation.SlideShowWindow.View.Exit();
      }, 3000);
    }

动画

动画总数量

获取当前页幻灯片动画的个数。

  • 语法

    表达式.ActivePresentation.SlideShowWindow.View.GetClickCount()

    表达式:文档类型应用对象

  • 返回值

    返回Number类型的值表示当前幻灯片对应的动画数。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //切换到PPT全屏播放状态
      await app.ActivePresentation.SlideShowSettings.Run();
    
      //获取当前页幻灯片动画的个数
      const clickCount = await app.ActivePresentation.SlideShowWindow.View.GetClickCount();
      console.log(clickCount);
    }

当前页数量

获取鼠标单击的正在幻灯片上播放或刚刚播放完成的动画的索引号。

  • 语法

    表达式.ActivePresentation.SlideShowWindow.View.GetClickIndex()

    表达式:文档类型应用对象

  • 返回值

    返回Number类型的值,表示当前鼠标单击动画的索引号。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //切换到PPT全屏播放状态
      await app.ActivePresentation.SlideShowSettings.Run();
    
      //获取当前鼠标单击动画的索引号
      const clickCount = await app.ActivePresentation.SlideShowWindow.View.GetClickIndex();
      console.log(clickCount);
    }

下一步动画

切换到下一步动画。

  • 语法

    表达式.ActivePresentation.SlideShowWindow.View.GotoNextClick()

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //切换到PPT全屏播放状态
      await app.ActivePresentation.SlideShowSettings.Run();
    
      //切换到下一步动画
      setTimeout( async () => {
        await app.ActivePresentation.SlideShowWindow.View.GotoNextClick();
      }, 2000);
    }

监听下一步动画

监听下一步动画操作。

  • 语法

    表达式.Sub.SlideShowOnNext = Function

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //切换到PPT全屏播放状态
      await app.ActivePresentation.SlideShowSettings.Run();
    
      //监听下一步动画操作
      app.Sub.SlideShowOnNext = async () => {
        console.log('下一步');
      };
    
      //3000 ms后执行下一步操作
      setTimeout( async () => {
        await app.ActivePresentation.SlideShowWindow.View.GotoNextClick();
      }, 3000);
    }

上一步动画

切换到上一步动画。

  • 语法

    表达式.ActivePresentation.SlideShowWindow.View.GotoPreClick()

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //切换到PPT全屏播放状态
      await app.ActivePresentation.SlideShowSettings.Run();
    
      //切换到上一步动画
      setTimeout( async () => {
        await app.ActivePresentation.SlideShowWindow.View.GotoPreClick();
      }, 2000);
    }

监听上一步动画

监听上一步动画操作。

  • 语法

    表达式.Sub.SlideShowOnPrevious = Function

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //切换到PPT全屏播放状态
      await app.ActivePresentation.SlideShowSettings.Run();
    
      //监听上一步动画操作
      app.Sub.SlideShowOnPrevious = async () => {
        console.log('上一步');
      };
    
      //3000 ms后执行下一步
      setTimeout( async () => {
        await app.ActivePresentation.SlideShowWindow.View.GotoNextClick();
      }, 3000);
    
      //5000 ms后执行上一步
      setTimeout( async () => {
        await app.ActivePresentation.SlideShowWindow.View.GotoPreClick();
      }, 5000);
    }

播放

重要

JS-SDK V1.1.15及以上版本支持该功能。

显示或隐藏页码(PC端)

  • 语法

    表达式.ActivePresentation.SlideShowWindow.View.ShowPage

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //窗口对象
      const SlideShowWindow = await app.ActivePresentation.SlideShowWindow;
    
      //视图对象
      const view = await SlideShowWindow.View;
    
      //播放模式下显示页码
      view.ShowPage = true;
    }

显示或隐藏工具栏

  • 语法

    表达式.ActivePresentation.SlideShowSettings.ShowPlayToolbar

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //显示隐藏工具栏
      app.ActivePresentation.SlideShowSettings.ShowPlayToolbar = false;
    }

修改工具栏样式

重要

该高级接口自由度很高,为了避免样式的修改影响功能使用,请尽量使用topleftrightbottomtranslate修改样式。

  • 语法

    表达式.ActivePresentation.SlideShowSettings.SetPlayToolbarPosition({ Style })

    表达式:文档类型应用对象

  • 参数

    传入一个布尔值,打开或者关闭缩略图。

    属性

    数据类型

    是否必填

    描述

    Style

    Object

    样式。

    Style说明

    属性

    数据类型

    描述

    Show

    Object

    显示时的样式,传入参数类似为{ left: '100px' }

    Hidden

    Object

    隐藏时的样式。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //Slide设置对象
      const SlideShowSettings = await app.ActivePresentation.SlideShowSettings;
    
      //进入幻灯片播放模式
      await SlideShowSettings.Run();
    
      //修改工具栏样式
      await SlideShowSettings.SetPlayToolbarPosition({
        Style: {
          Show: { top: '10px' }, //style样式,工具栏显示时的位置
          Hidden: { top: '-100px' }, //style样式,工具栏隐藏时的位置
        },
      });
    }

修改画笔工具样式

  • 语法

    表达式.ActivePresentation.SlideShowSettings.SetPlayInkPosition({ Style })

    表达式:文档类型应用对象

  • 参数

    传入一个布尔值,表明打开或者关闭缩略图。

    属性

    数据类型

    是否必填

    描述

    Style

    Object

    样式,传入参数类似为{ left: '100px' }

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //Slide设置对象
      const SlideShowSettings = await app.ActivePresentation.SlideShowSettings;
    
      //进入幻灯片播放模式
      await SlideShowSettings.Run();
    
      //修改画笔工具样式
      await SlideShowSettings.SetPlayInkPosition({
        Style: { background: 'deepskyblue' }, //画笔工具样式
      });
    }

打开或关闭画笔

  • 语法

    表达式.ActivePresentation.SetOpenMarkerInkEdit({ Open })

    表达式:文档类型应用对象

  • 参数

    属性

    数据类型

    是否必填

    描述

    Open

    Boolean

    打开或保存画笔并退出。

    • true(默认):开启画笔。

    • false:保存画笔并关闭。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //开启画笔
      await app.ActivePresentation.SetOpenMarkerInkEdit(true);
    
      setTimeout(async () => {
        //保存画笔并关闭
        await app.ActivePresentation.SetOpenMarkerInkEdit(false);
      }, 5000);
    }

打开备注视图

  • 语法

    表达式.ActivePresentation.SlideShowSettings.OpenRemarkSpeaker()

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //Slide设置对象
      const SlideShowSettings = await app.ActivePresentation.SlideShowSettings;
    
      //进入幻灯片播放模式
      await SlideShowSettings.Run();
    
      //打开备注视图
      await SlideShowSettings.OpenRemarkSpeaker();
    }

打开倒计时

  • 语法

    表达式.ActivePresentation.SlideShowSettings.SetCountDown()

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //Slide设置对象
      const SlideShowSettings = await app.ActivePresentation.SlideShowSettings;
    
      //进入幻灯片播放模式
      await SlideShowSettings.Run();
    
      //打开倒计时
      await SlideShowSettings.SetCountDown();
    }

开启自动播放

  • 语法

    表达式.ActivePresentation.SlideShowSettings.StartAutoPlay()

    表达式:文档类型应用对象

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //Slide设置对象
      const SlideShowSettings = await app.ActivePresentation.SlideShowSettings;
    
      //进入幻灯片播放模式
      await SlideShowSettings.Run();
    
      //开启自动播放
      await SlideShowSettings.StartAutoPlay();
    }

幻灯片播放状态

获取当前幻灯片播放状态。

  • 语法

    表达式.ActivePresentation.SlideShowWindow.View.State

    表达式:文档类型应用对象

  • 返回值

    属性

    数据类型

    描述

    state

    String

    幻灯片状态。

    • edit:编辑。

    • play:播放。

    • masterView:母版视图。

  • 示例:

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取状态
      const getState = () => {
        return app.ActivePresentation.SlideShowWindow.View.State;
      };
    
      //获取当前幻灯片播放状态
      let currentState = await getState();
      console.log(currentState); // 'edit'
    
      //切换到PPT全屏播放状态
      await app.ActivePresentation.SlideShowSettings.Run();
      currentState = await getState();
      console.log(currentState); // 'play'
    }

打开或关闭播放缩略图

  • 语法

    表达式.ActivePresentation.SlideShowSettings.SetMiniThumbnailVisible()

    表达式:文档类型应用对象

  • 参数

    传入一个布尔值,表示打开或者关闭缩略图。

    属性

    数据类型

    是否必填

    描述

    Visible

    Boolean

    是否打开缩略图。

    • false(默认):关闭。

    • true:打开。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //打开缩略图
      await app.ActivePresentation.SlideShowSettings.SetMiniThumbnailVisible(true);
    }

插入新的幻灯片

  • 语法

    表达式.ActivePresentation.Slides.AddSlide()

    表达式:文档类型应用对象

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    number

    新幻灯片插入的位置。不传或参数小于0时插入到当前幻灯片的后面。

    CustomLayout

    object

    本地版式的类型。不传时默认插入空白幻灯片。

    LayoutUrl

    string

    在线PPT文件的链接。如果传递了该参数,layoutType会被忽略,优先使用在线PPT文件内的版式,并返回一个promise通知结果。

    LayoutIndex

    number

    新建幻灯片时需要使用在线文件的第几个版式,layoutUrl不传时,该参数无效。