ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 7352|回复: 8

请问如何实现Flash仅在其嵌入的PPT当前页面下执行开始播放?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-10-31 10:31 | 显示全部楼层 |阅读模式

求教各位一个问题:

我想实现这样一个功能,在某个PPT页面中嵌入Flash文件,当播放到该页面时Flash会开始自动播放,而一旦页面跳到上一页或者退出播放后,再次播放到该页面时,Flash会同样的从头开始播放,直至结束。

现在我已经用插入Shock Wave Flash控件的方式实现了Flash导入,但问题是我只能在播放的第一次能够实现Flash播放,而一旦跳至上一页或者推出后再次播放,该Flash会接着上次播放的位置继续播放,或者在终点停止不动。

我现在让Flash重新播放的办法是右键点击该Flash Object,将.FrameNum = 0,并且 .Playing = True,这样又可以了;或者加入一个如按钮的控件,在Click 的 VBA内写入上述两行,播放后点击该按钮Flash也可以重新播放。

但我希望的是直接播放到该页面就可以自动播放了,而不要点击。不知道VBA是否可以实现该功能?如何获取“播放到某页面”这个消息呢?

多谢各位了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-10-31 14:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

难题?

麻烦各位想想有没有办法实现?

TA的精华主题

TA的得分主题

发表于 2006-10-31 15:14 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-10-31 17:29 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-11-1 09:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

Nextslide的事件如何在VBA中获取呢?这是关键。只要能获取类似的事件,加入Flash初始化的两句指令就OK了!

在Flash中做好控制当然没有问题,只是这样还得用鼠标进行点击或者操作。。。。其实如果可以点击,插入一个按钮控件也是完全可以实现的

TA的精华主题

TA的得分主题

发表于 2006-11-1 12:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ppt中的事件应用具体可以参看ppt Visual Basicd帮助说明。基本的思路是,新建一个类模块,在其中申明一个带事件的变量,在“SlideShowNextSlide”事件中,先判断当前放映的幻灯片的编号(如果没记错的话,应该是用“PresentPosition”属性来判断),若幻灯片是包含ShockWaveFlashObject控件的幻灯片,则执行“Slide 1.ShockWaveFlashObject1.Rewind”、“Slide 1.ShockWaveFlashObject1.Play”之类的代码;然后新建一个模块,在其中对新变量进行初始化。开始幻灯片放映之前,先运行一遍所建模块,然后在放映过程中每次切换幻灯片时都会发生“SlideShowNextSlide”事件,当幻灯片编号满足先前设定的判断条件时,就会对Flash控件发出相应指令。
[此贴子已经被作者于2006-11-1 12:43:39编辑过]

TA的精华主题

TA的得分主题

发表于 2007-9-25 21:05 | 显示全部楼层

SlideShowNextSlide 事件

参阅应用于示例特性

切换到下一张幻灯片立刻发生此事件。对于第一张幻灯片,此事件紧跟在 SlideShowBegin 事件之后发生。

Private Sub application_SlideShowNextSlide(ByVal Wn As SlideShowWindow)

application      Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application 对象的事件的详细信息,请参阅使用 Application 对象的事件

Wn      活动幻灯片放映窗口。

TA的精华主题

TA的得分主题

发表于 2007-9-25 21:07 | 显示全部楼层

使用 Application 对象的事件

参阅特性

若要为 Application 对象的事件创建事件句柄,需要完成以下三个步骤:

  1. 在类模块中声明一个对象变量以响应事件。
  2. 编写特定的事件过程。
  3. 在另一模块中初始化声明的对象。

声明对象变量

在为 Application 对象的事件编写过程之前,必须新建一个类模块,然后声明一个具有事件的 Application 类型的对象。例如,假设已新建一个类模块且其名称为 EventClassModule。该新类模块包含以下代码。

Public WithEvents App As Application
	

编写事件过程

声明具有事件的新对象之后,该对象就会出现在类模块的“对象”列表中,然后就可以为此新对象编写事件过程。(当在“对象”列表中选择新对象时,“过程”列表中就会列出该对象的有效事件。)从“过程”列表中选择一个事件;就会在类模块中添加一个空过程。

Private Sub App_NewPresentation()

End Sub
	

初始化声明的变量

在过程运行之前,必须将类模块中声明的对象(本示例中为 App)与 Application 对象相连。用户可以在任意模块中使用以下代码实现此处理过程。

Dim X As New EventClassModule
Sub InitializeApp()
    Set X.App = Application
End Sub
	

运行 InitializeApp 过程。当运行此过程后,类模块中的 App 对象就会指向 Microsoft PowerPoint 的 Application 对象,然后当事件发生时,类模块中的事件过程就会运行。

TA的精华主题

TA的得分主题

发表于 2007-9-25 21:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

"运行 InitializeApp 过程。当运行此过程后,类模块中的 App 对象就会指向 Microsoft PowerPoint 的 Application 对象,然后当事件发生时,类模块中的事件过程就会运行。"

一定要运行InitializeApp 过程,另外,slideshownextslide事件一定要放在该类模块中才能被响应.

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 16:31 , Processed in 0.043292 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表