请问如何实现Flash仅在其嵌入的PPT当前页面下执行开始播放?
求教各位一个问题:我想实现这样一个功能,在某个PPT页面中嵌入Flash文件,当播放到该页面时Flash会开始自动播放,而一旦页面跳到上一页或者退出播放后,再次播放到该页面时,Flash会同样的从头开始播放,直至结束。
现在我已经用插入Shock Wave Flash控件的方式实现了Flash导入,但问题是我只能在播放的第一次能够实现Flash播放,而一旦跳至上一页或者推出后再次播放,该Flash会接着上次播放的位置继续播放,或者在终点停止不动。
我现在让Flash重新播放的办法是右键点击该Flash Object,将.FrameNum = 0,并且 .Playing = True,这样又可以了;或者加入一个如按钮的控件,在Click 的 VBA内写入上述两行,播放后点击该按钮Flash也可以重新播放。
但我希望的是直接播放到该页面就可以自动播放了,而不要点击。不知道VBA是否可以实现该功能?如何获取“播放到某页面”这个消息呢?
多谢各位了! 麻烦各位想想有没有办法实现? 用ppt的SlideShowNextSlide事件试试。 在FLASH中做好控制不就行了吗,何必舍近求远 Nextslide的事件如何在VBA中获取呢?这是关键。只要能获取类似的事件,加入Flash初始化的两句指令就OK了!
在Flash中做好控制当然没有问题,只是这样还得用鼠标进行点击或者操作。。。。其实如果可以点击,插入一个按钮控件也是完全可以实现的 ppt中的事件应用具体可以参看ppt Visual Basicd帮助说明。基本的思路是,新建一个类模块,在其中申明一个带事件的变量,在“SlideShowNextSlide”事件中,先判断当前放映的幻灯片的编号(如果没记错的话,应该是用“PresentPosition”属性来判断),若幻灯片是包含ShockWaveFlashObject控件的幻灯片,则执行“Slide 1.ShockWaveFlashObject1.Rewind”、“Slide 1.ShockWaveFlashObject1.Play”之类的代码;然后新建一个模块,在其中对新变量进行初始化。开始幻灯片放映之前,先运行一遍所建模块,然后在放映过程中每次切换幻灯片时都会发生“SlideShowNextSlide”事件,当幻灯片编号满足先前设定的判断条件时,就会对Flash控件发出相应指令。 SlideShowNextSlide 事件
参阅应用于示例特性
切换到下一张幻灯片立刻发生此事件。对于第一张幻灯片,此事件紧跟在 SlideShowBegin 事件之后发生。
Private Sub application_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
application Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application 对象的事件的详细信息,请参阅使用 Application 对象的事件。
Wn 活动幻灯片放映窗口。 使用 Application 对象的事件
参阅特性
若要为 Application 对象的事件创建事件句柄,需要完成以下三个步骤:
[*]在类模块中声明一个对象变量以响应事件。
[*]编写特定的事件过程。
[*]在另一模块中初始化声明的对象。
声明对象变量
在为 Application 对象的事件编写过程之前,必须新建一个类模块,然后声明一个具有事件的 Application 类型的对象。例如,假设已新建一个类模块且其名称为 EventClassModule。该新类模块包含以下代码。
Public WithEvents App As Application 编写事件过程
声明具有事件的新对象之后,该对象就会出现在类模块的“对象”列表中,然后就可以为此新对象编写事件过程。(当在“对象”列表中选择新对象时,“过程”列表中就会列出该对象的有效事件。)从“过程”列表中选择一个事件;就会在类模块中添加一个空过程。
Private Sub App_NewPresentation()End Sub 初始化声明的变量
在过程运行之前,必须将类模块中声明的对象(本示例中为 App)与 Application 对象相连。用户可以在任意模块中使用以下代码实现此处理过程。
Dim X As New EventClassModuleSub InitializeApp() Set X.App = ApplicationEnd Sub 运行 InitializeApp 过程。当运行此过程后,类模块中的 App 对象就会指向 Microsoft PowerPoint 的 Application 对象,然后当事件发生时,类模块中的事件过程就会运行。 "运行 InitializeApp 过程。当运行此过程后,类模块中的 App 对象就会指向 Microsoft PowerPoint 的 Application 对象,然后当事件发生时,类模块中的事件过程就会运行。"
一定要运行InitializeApp 过程,另外,slideshownextslide事件一定要放在该类模块中才能被响应.
页:
[1]