其实这是一个很容易解决的问题,可惜这个问题属于两不管的境遇,VB的书没有,FLASH的书也没有,对于不懂FLASH的VB写手就是个问题。
一、将FLASH插入VB窗体
在VB工程/部件的列表里找到shockwave flash,添加即可在工具栏里找到FLASH控件
,添加之。。。
该控件有两个值得注意的属性,movie和playing,movie指代FLASH文件,扩展名.SWF,强烈建议采用相对路径给其赋值,例如:
Dim strpath As String
strpath = App.Path
If Right(strpath, 1) <> "\" Then
strpath = strpath & "\"
End If
shockflash.Movie = strpath & "ping.swf"
而playing为是否自动播放,默认为false,记得改成true哦!
现在你可以用FLASH做为你的闪屏啦!
二、实现交互
首先,打开FLASH,要将做好的FLASH按纽选定,在on release事件里编写代码如下:
{
fscommand("string");
}
这里的string为任意字符串,传递给VB的就是这个字符串。让我们启动VB,在shockwave flash控件就会多出fscommand事件,FLASH里的字符串已经赋给了参数command,假如我们有多个按钮做为工具栏,那么我们就可以通过判定command来编写相应的代码。以下是我的实例:
Private Sub flashmain_FSCommand(ByVal command As String, ByVal args As String)
Select Case command
Case "cmdshop"
Frmkaitai.Show vbModal
Case "cmdvip"
frmMbEmit.Show vbModal
Case "cmdhome"
FrmJiezhang.Show vbModal
Case "cmdbill"
Frmtuitai.Show vbModal
Case "cmdjiankong"
FrmXiaofei.Show vbModal
Case "cmdhelp"
frmAbout.Show vbModal
Case "cmdexit"
End
End Select
End Sub
三、应用
VB界面的恶心是天人共愤的,利用FLASH就可以很好的弥补这一点。FLASH美化界面的能力使得FLASH与各种编程工具间的交互变为FLASH推广的契机。
(一) 在VB中播放Flash动画
怎样才能在VB中加入Flash动画呢?我们只要使用Flash5自带的Shockwave Flash.ocx这个控件就可以了。方法如下:
1. 打开VB6.0,新建一个工程,在工具箱上单击右键,选择Components…,在部件窗口的控件列表中选择Shockwave flash,然后确定,Flash控件就被加到工具箱上。
2.选择工具箱上的Flash控件,放到窗体上并调整好大小;
3.在Form_Load()过程中加入如下代码:
Private Sub Form_Load()
ShockwaveFlash1.Movie = “D:\test.swf”
'这里写上你的Flash文件目录
ShockwaveFlash1.Menu = False
ShockwaveFlash1.Playing = True
End Sub
其中,ShockwaveFlash1.Movie是用来指定你要播放的Flash动画的目录;ShockwaveFlash1.Menu是用来指定是否在Flash动画播放中封闭右键菜单,True为能够显示菜单,False为封闭右键菜单;ShockwaveFlash1.Playing = True是让动画播放。
好了,按F5看看吧,是不是程序中的Flash动画能播放了? :)
(二) 在Flash中控制VB程序实现交互
现在Flash动画已经能在VB程序中播放了,那么怎么实现在Flash中控制VB的程序从而实现交互式的操作呢?本文的重点也在于此。
首先我们先来了解Flash中控制VB程序的基本原理:在Flash的ActionScript里面有个叫做FSCommand()的函数,它的主要功能就是发送FScommand命令,例如使动画全屏播放,隐藏动画菜单,更重要的就是可以与外部文件和程序进行通信。而在VB程序中,我们就是利用的Shockwave flash控件的FSCommand()过程来完成这一通信过程,实现信息发送的功能,并且根据发送出来的不同的命令及参数来实现对VB程序的控制。
明白了吧?简单的说,我们就是利用Flash中的FSCommand()函数向VB发送命令,利用Shockwave Flash控件来接受这个命令,从而达到Flash控制VB程序的目的。
好了,现在知道了原理,我们就一步一步来实现吧!
1. 首先要打开Flash5制作一个交互按钮,并在按钮上面加上如下代码:
on (release) {
fscommand ("Send Act
//发送Send Act
}
这个命令的作用是当按下按钮后Flash向VB发送出名为”Send Act
2. 将Flash导出成为swf文件,如文章第一部分所述插入到VB6.0中,下面就是VB怎么接受这个命令的事情了;
3. 在窗体上双击Shockwave Flash控件,进入代码编辑窗口,加入如下语句
其中,ShockwaveFlash1_FSCommand这个过程是专门用来接收Flash发送的FSCommand命令的,其中第一个参数command就是与Flash发送过来的命令相对应的,当其一致的时候,则执行后面的程序(本例中是弹出MsgBox)。好了,看看程序运行的结果吧:
Private Sub ShockwaveFlash1_FSCommand(ByVal command As String, ByVal args As String)
If command = "Send Act
msg = MsgBox("Flash与VB成功结合了!", vbApplicationModal, "成功了!")
'当接到Send Act
'这里加入你需要的程序
End If
End Sub
FSCommand in ActionScript
To be a