Skip to content

事件(Sub)

事件对象

属性列表

属性说明
监听页面跳转
监听进入幻灯片全屏播放
监听放映到最后时发送通知
监听关系图的挂载和卸载
监听关系图移动和缩放
监听 PPT 的新增操作
监听服务端幻灯片更新后通知当前操作者(用户新增、移动、删除幻灯片后触发)
监听 PPT 的删除操作
监听 是否使用激光笔和标注
监听 是否显示标注内容
监听 发送激光笔的墨迹
监听 视频播放状态改变
监听 PPT 的移动
监听 播放状态改变
监听当前页改变事件
监听退出幻灯片全屏播放
监听下一步动画操作
监听上一步动画操作
触发器动画事件
演示视频进入/退出全屏播放的事件监听

ActiveSlideChange

监听页面跳转

语法

表达式.Sub.ActiveSlideChange = eventHandle

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

示例

js
//@file=base.pptx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听页面跳转
  app.Sub.ActiveSlideChange = async curryPage => {
    console.log('切换到:', curryPage)
  }
}

SlideShowBegin

监听进入幻灯片全屏播放

语法

表达式.Sub.SlideShowBegin = Function

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

示例

js
//@file=base.pptx
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)
}

LastSlideEnd

监听放映到最后时发送通知

语法

表达式.Sub.LastSlideEnd = eventHandle

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

示例

js
//@file=base.ppt
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听事件
  app.Sub.LastSlideEnd = data => {
    console.log('监听放映到最后时发送通知:', data)
  }
}

OnDiagramMount

仅支持 PC 端

监听关系图的挂载和卸载

操作方式:

  1. 注册事件 Sub.OnDiagramMount
  2. 选中关系图,触发挂载监听
  3. 取消选中关系图,触发卸载监听

语法

表达式.Sub.OnDiagramMount = eventHandle

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

示例

js
//@file=base.pptx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听关系图的挂载和卸载
  app.Sub.OnDiagramMount = d => {
    console.log('监听关系图挂载和卸载:', d)
  }
}

OnDiagramToggleBtns

仅支持 PC 端

监听关系图移动和缩放

操作方式:

  1. 注册事件 Sub.OnDiagramToggleBtns
  2. 选中关系图
  3. 移动和停止移动触发事件,打印信息(根据移动和停止的监听,控制按钮组样式、项数、颜色的显示隐藏)
  4. 缩放关系图触发事件,打印信息(根据缩放和停止缩放的监听,控制按钮组样式、项数、颜色的显示隐藏)

语法

表达式.Sub.OnDiagramToggleBtns = eventHandle

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

示例

js
//@file=base.pptx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听关系图移动和缩放
  app.Sub.OnDiagramToggleBtns = d => {
    console.log('监听关系图移动和缩放:', d)
  }
}

PresentationNewSlide

监听 PPT 的新增操作

语法

表达式.Sub.PresentationNewSlide = eventHandle

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

示例

js
//@file=base.ppt
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听 PPT 的新增操作
  app.Sub.PresentationNewSlide = d => {
    console.log('监听 PPT 的新增操作:', d)
  }
}

SlideChangeOperator

监听服务端幻灯片更新后通知当前操作者(用户新增、移动、删除幻灯片后触发)

语法

表达式.Sub.SlideChangeOperator = eventHandle

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

示例

js
//@file=base.ppt
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听事件
  app.Sub.SlideChangeOperator = Date => {
    console.log(
      '监听服务端幻灯片更新后通知当前操作者(用户新增、移动、删除幻灯片后触发):',
      Data
    )
  }
}

SlideDelete

监听 PPT 的删除操作

语法

表达式.Sub.SlideDelete = eventHandle

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

示例

js
//@file=base.ppt
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听 PPT 的删除操作
  app.Sub.SlideDelete = d => {
    console.log('监听 PPT 的删除操作:', d)
  }
}

SlideInkToolbarVisible

仅支持 PC 端

监听 是否使用激光笔和标注

语法

表达式.Sub.SlideInkToolbarVisible = eventHandle

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

示例

js
//@file=base.ppt
async function example() {
  await instance.ready()

  const app = instance.Application

  // 窗口对象
  const SlideShowWindow = await app.ActivePresentation.SlideShowWindow

  // 视图对象
  const view = await SlideShowWindow.View

  // 监听 是否使用激光笔和标注
  app.Sub.SlideInkToolbarVisible = ({ Data }) => {
    console.log('监听 是否使用激光笔和标注:', Data)
  }

  // 设置标记工具栏出现
  view.MarkerEditVisible = true
}

SlideInkVisible

仅支持 PC 端

监听 是否显示标注内容

语法

表达式.Sub.SlideInkVisible = eventHandle

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

示例

js
//@file=base.ppt
async function example() {
  await instance.ready()

  const app = instance.Application

  // 窗口对象
  const SlideShowWindow = await app.ActivePresentation.SlideShowWindow

  // 视图对象
  const view = await SlideShowWindow.View

  // 监听 是否显示标注内容
  app.Sub.SlideInkVisible = ({ Data }) => {
    console.log('监听 是否显示标注内容:', Data)

    if (Data.showmark) {
      setTimeout(() => {
        view.PointerVisible = false
      }, 2000)
    }
  }
}

SlideLaserPenInkPointsChanged

仅支持 PC 端

监听 发送激光笔的墨迹

语法

表达式.Sub.SlideLaserPenInkPointsChanged = eventHandle

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

示例

js
//@file=base.ppt
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听 发送激光笔的墨迹
  app.Sub.SlideLaserPenInkPointsChanged = ({ Data }) => {
    console.log('监听 发送激光笔的墨迹:', Data)
  }
}

SlideMediaChanged

监听 视频播放状态改变

语法

表达式.Sub.SlideMediaChanged = eventHandle

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

示例

js
//@file=base.ppt
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听 视频播放状态改变
  app.Sub.SlideMediaChanged = ({ Data }) => {
    console.log('监听 视频播放状态改变:', Data)
  }
}

SlideMove

监听 PPT 的移动

语法

表达式.Sub.SlideMove = eventHandle

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

示例

js
//@file=base.ppt
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听 PPT 的移动
  app.Sub.SlideMove = d => {
    console.log('监听 PPT 的移动:', d)
  }
}

SlidePlayerChange

监听 播放状态改变

语法

表达式.Sub.SlidePlayerChange = eventHandle

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

示例

js
//@file=base.ppt
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听 播放状态改变
  app.Sub.SlidePlayerChange = ({ Data }) => {
    console.log('监听 播放状态改变:', Data)
  }
}

SlideSelectionChanged

监听当前页改变事件

语法

表达式.Sub.SlideSelectionChanged = eventHandle

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

示例

js
//@file=base.pptx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 监听当前页改变事件
  app.Sub.SlideSelectionChanged = async curryPage => {
    console.log('切换到:', curryPage)
  }
}

SlideShowEnd

监听退出幻灯片全屏播放

语法

表达式.Sub.SlideShowEnd = Function

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

示例

js
//@file=base.pptx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 切换到 PPT 全屏播放状态
  await app.ActivePresentation.SlideShowSettings.Run()

  // 监听退出幻灯片全屏播放
  app.Sub.SlideShowEnd = async () => {
    console.log('退出')
  }

  // 3 秒后退出全屏播放
  setTimeout(async () => {
    await app.ActivePresentation.SlideShowWindow.View.Exit()
  }, 3000)
}

SlideShowOnNext

监听下一步动画操作

语法

表达式.Sub.SlideShowOnNext = Function

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

示例

js
//@file=base.pptx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 切换到 PPT 全屏播放状态
  await app.ActivePresentation.SlideShowSettings.Run()

  // 监听下一步动画操作
  app.Sub.SlideShowOnNext = async () => {
    console.log('下一步')
  }

  // 3 秒后执行下一步操作
  setTimeout(async () => {
    await app.ActivePresentation.SlideShowWindow.View.GotoNextClick()
  }, 3000)
}

SlideShowOnPrevious

监听上一步动画操作

语法

表达式.Sub.SlideShowOnPrevious = Function

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

示例

js
//@file=base.pptx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 切换到 PPT 全屏播放状态
  await app.ActivePresentation.SlideShowSettings.Run()

  // 监听上一步动画操作
  app.Sub.SlideShowOnPrevious = async () => {
    console.log('上一步')
  }

  // 3 秒后执行下一步
  setTimeout(async () => {
    await app.ActivePresentation.SlideShowWindow.View.GotoNextClick()
  }, 3000)

  // 5 秒后执行上一步
  setTimeout(async () => {
    await app.ActivePresentation.SlideShowWindow.View.GotoPreClick()
  }, 5000)
}

TriggerPlayEvent

触发器动画事件

语法

表达式.Sub.TriggerPlayEvent = eventHandle

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

示例

js
//@file=base.pptx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 触发器动画事件
  app.Sub.TriggerPlayEvent = curryPage => {
    console.log('触发器动画:', curryPage)
  }
}

VideoFullscreenInfo

仅支持 PC 端

演示视频进入/退出全屏播放的事件监听

语法

表达式.Sub.VideoFullscreenInfo = eventHandle

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

示例

js
//@file=base.pptx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 演示视频进入/退出全屏播放的事件监听
  app.Sub.VideoFullscreenInfo = async () => {
    console.log('全屏状态切换')
  }
}