我正在Flash中创建一个动画菜单,我希望将其嵌入到PowerPoint中,并且可以在单击Flash中的按钮时跳转到PowerPoint中的幻灯片。
在Flash中,与PowerPoint通信的代码是:
fig1.onRelease=function(){
fscommand("",2)
}
其中fig1是影片剪辑按钮,fscommand将参数传递给附加到PowerPoint中嵌入式SWF的VBscript。 '2'是我希望它跳转到的幻灯片编号。
在PowerPoint中我正在使用此代码:
Private Sub ShockwaveFlash1_FSCommand(ByVal command, ByVal args)
With ShockwaveFlash1.SlideShowWindows(1).View
.GotoSlide (args)
End With
End Sub
此代码基于本网站上其他帖子的代码,这是对有类似问题的人的回答。
Link to a specific slide from Flash file embeded in PowerPoint
我的问题是它不适合我,我收到了这个VB错误:
Compile error:
Expected list separator or )
除此错误外,第一行中突出显示“命令”一词。
答案 0 :(得分:1)
错误消息表明您只是将VBA宏复制/粘贴到VBScript文件。这是行不通的,因为两种语言之间有notable differences。此特定错误很可能是由过程签名中的类型定义引起的。改变这个:
Private Sub ShockwaveFlash1_FSCommand(ByVal command As String, ByVal args As String)
进入这个:
Private Sub ShockwaveFlash1_FSCommand(ByVal command, ByVal args)
您可能还需要更改
SlideShowWindows(1).View
到
ppt.SlideShowWindows(1).View
或
ppt.ActivePresentation.SlideShowWindows(1).View
其中ppt
是引用PowerPoint应用程序对象的变量。
答案 1 :(得分:0)
感谢您的帮助Ansgar。事实证明,问题的一部分是我有一个错误的Flash对象名称。右键单击SWF并从上下文菜单中选择“属性”,显示SWF对象名称。我做了几个VB代码调整,并保持Actionscript相同。
最终动作脚本(Flash中的按钮代码):
fig1.onRelease=function(){
fscommand("", 2)
}
最终的VB代码:
Private Sub ArticulateFlashObject_FSCommand(ByVal command As String, ByVal args As String)
With SlideShowWindows(1).View
.GotoSlide args
End With
End Sub