×

vb.net与FLASH的完美结合

Kalet Kalet 发表于2009-07-26 12:39:42 浏览194 评论0

抢沙发发表评论

(一)    在VB.net中播放Flash动画

怎样才能在VB.net中加入Flash动画呢?我们只要使用Flash5自带的Shockwave Flash.ocx这个控件就可以了。方法如下:

1.   打开VB.net,新建一个工程,在工具箱上单击右键,选择"添加…",在com窗口的控件列表中选择Shockwave flash,然后确定,Flash控件就被加到工具箱上。

2.选择工具箱上的Flash控件,放到窗体上并调整好大小;

  
3.在Form_Load()过程中加入如下代码:

ShockwaveFlash1.Movie = “D:\test.swf” '这里一定要写绝对地址,其实只要把FLASH文件放到你程序的bin目录里,生成后自然变成相对路径   

'这里写上你的Flash文件目录

ShockwaveFlash1.Menu = False

ShockwaveFlash1.Playing = True

  
其中,ShockwaveFlash1.Movie是用来指定你要播放的Flash动画的目录;ShockwaveFlash1.Menu是用来指定是否在Flash动画播放中封闭右键菜单,True为能够显示菜单,False为封闭右键菜单;ShockwaveFlash1.Playing = True是让动画播放。
(二)    在Flash中控制VB.net程序实现交互

  

    现在Flash动画已经能在VB.net程序中播放了,那么怎么实现在Flash中控制VB的程序从而实现交互式的操作呢?本文的重点也在于此。

     首先我们先来了解Flash中控制VB程序的基本原理:在Flash的ActionScript里面有个叫做FSCommand()的函数,它的主要功能就是发送FScommand命令,例如使动画全屏播放,隐藏动画菜单,更重要的就是可以与外部文件和程序进行通信。而在VB程序中,我们就是利用的Shockwave flash控件的FSCommand()过程来完成这一通信过程,实现信息发送的功能,并且根据发送出来的不同的命令及参数来实现对VB.net程序的控制。

明白了吧?简单的说,我们就是利用Flash中的FSCommand()函数向VB发送命令,利用Shockwave Flash控件来接受这个命令,从而达到Flash控制VB.net程序的目的。

好了,现在知道了原理,我们就一步一步来实现吧!

1.   首先要打开Flash制作一个交互按钮,并在按钮上面加上如下代码:

on (release) {

     fscommand ("Send Action");

     //发送Send Action这个命令

}
这个命令的作用是当按下按钮后Flash向VB发送出名为”Send Action”的命令。当然,这个命令的名字在实际应用中可以叫做其他的任何名字。

2. 将Flash导出成为swf文件,如文章第一部分所述插入到VB.net中,下面就是VB.net怎么接受这个命令的事情了;

3.   在窗体上双击Shockwave Flash控件,进入ShockwaveFlash1_FSCommand事件中,在此事件中加入:

If e.command = "Send Action" Then

MsgBox("Flash与VB.net成功结合了!", vbApplicationModal, "成功了!")

'当接到Send Action命令的时候

'这里加入你需要的程序

End If


  

其中,ShockwaveFlash1_FSCommand这个过程是专门用来接收Flash发送的FSCommand命令的,其中第一个参数command就是与Flash发送过来的命令相对应的,当其一致的时候,则执行后面的程序(本例中是弹出MsgBox)。



   
呵呵,写得好!


主要是一直在找做出另类好看的软件界面的方法,也就找出了这样一种解决之道。
  
哪里有关于fscommand的资料吗?上次去micromedia的官网没找到
  
现在就别用这个了,flash不是有webservice了么?
而且还有flex了,都是干这个的。
   
FLASH也有WEBSERVICE?
晕,好久没有弄FLASH了,都不知道变成什么样了
看来得去找点之方面的东东来看了,谢谢呀!
  
为什么传给了人家,人家是看不到FLASH的?请教..QQ:83001170
   
因为FLASH不是直接加入到EXE文件中的,而是用链接方式显示在EXE窗体上的,换言之,FLASH文件是单独存在的,也就是要将FLASH和EXE文件一起传给对方,放在相应的目录内,对方才能看到的。

还没有试过,不过Flash能结合进来Windows程序的界面绝对有大前途的,很有想象空间啊

现在我遇到一个问题就是在加入的FLASH后,vb.net在播放这个flash时会跳过第一帧直接运行第二帧,我的flash中的退出按扭也没有起作用,退不出来!
  
这个问题并不是VB加入后造成的,你可以先看看你的FLASH里的ACTION是否正常,最好在第一帧做一个STOP()。
有关退出的问题,我是想知道你这个退出是实现的什么功能?只是关掉FLASH嘛?那行,就要在VB里写上隐藏这个FLASH控件的处理过程,要记住你这个FLASH是在WINFROM里运行的了,不是在IE里运行的呀!所以你这个退出到底是要实现什么功能呢?
   
问问:怎么样在网页中加入能用FLASH控制VB的录音程序!
我想了好长时间 找了好多资料都将不能搞定!

请指教!@#¥%……&

我很着急!

首先这个录音程序是运行在服务器端还是客户端?当然,在服务器端是很不好直接采集客户端的信息的。在服务器端的话,应该把语音程序做成一个服务性质的程序,由FLASH在网页里发出FSCOMMAND命令,再由网页脚本来处理相应命令,调用录音服务功能。
如果是在客户端的话,嘿嘿,还不好想呢!只能说要知道你的具体细节再分析,大概思路在这里吧,可能还没有现成的这样应用的实例,当然可以下载别人的网页版的语音聊天室分析一下。
它们是在网页上加入一个BUTTON,按下去后启动录音,那么我们可以用一个FLASH的FSCOMMAND命令来触发一个事件,调用BUTTON_down的事件处理过程就行了。也就是说用一个FSCOMMAND的触发的事件来替代Button_down的事件处理过程。
当然如果页面是.net的,我想这是很好实现的。
  
谢谢!flash中的每一帧后都有一个stop();在单独运行这个flash的时候,flash是从第一帧开始运行的,且在第一帧处停顿下来;可是加入到vb.net 中后它在第一帧处就不停顿,它会在第二帧处停下来.
另外,flash中的那个退出按钮的作用就是退出这flash,在加入到vb.net之后的作用就是用它来控制vb.net的,意思就是用flash来控制vb.net!
  
第一个我做的结果是能在第一帧停,没有问题呀!不知道你的是怎么回事了!
第二个问题,也就是你是用来控制更个退出的吧!那就应该用这个按钮发出一个on (release) {

fscommand ("end");

//发送Send Action这个命令

}


在vb.net里的处理时就用
If e.command = "end" Then

Application.exit
End If

这样就能搞定了!

  
thank you very much!我的问题昨天我已解决!
最后一个问题我用的是:
if command="quit" then
close()
end if
   
还是vb6中简单阿

各位知道VB能控制Flash函数吗?

也不知是谁抄谁的,怎么好多文章都一样,举例都一样.想找一点新鲜的都难.
   
flash与vb6结合的时候,如果在ShockwaveFlash1_FSCommand的事件中需要执行一个比较费时的操作时,为了使程序不假死,用了Doevents 语句释放控制权,但这样做了以后,发现每次点击Flash的时候都会收到两次相同的命令(即每点一个FLash按钮会触发两次ShockwaveFlash1_FSCommand事件),请问高手们,如何解决啊 ?
:( !!!????!!!

vb.net与FLASH的完美结合     
其实可以建议在执行比较费时的操作时用线程处理,嘿嘿!

  
你好,我想问一下,下面的具体情况能否实现,例如:一个养殖场有很多的牛,我想在地图上显示出每头牛的具体位置和其详细信息,预先会定义好了每种牛的FLASH(注:每个种类都有很多的牛分步在地图上,但是每个种类只能定义一个FLASH的样子)


那VB怎么传数据给FLASH呢,要VB能传数据给FLASH,FLASH也能传数据给VB这样才算是交互吧

  
不行啊,打开后什么都没有,好像没有加载Flash文件,我的路径都是正确的阿
   
傳遞給flash的方法是
控件.SetVariable("變量","參數")
   
这个控件和action我早在DELPHI里用过了,N年前的事情。

问个问提,我在第一步导入Shockwave flash.ocx时 报错,说 导入错误, 请确定什么属性的,英文不好, 但是 我可以在vb里做flash 没有问题的。谢谢了 指导下。
   
关键是VB怎么返回数据给FLASH
  
现在同时做flash,vb.net的同志好像不太多,大家要不要组一个群啊.哪位高手带个头吧.
   
我想问一下高手们: 在VB下加载FLASH后直接鼠标单击或双击FLASH画面能不能进到VB的下一页也就是说不用交互按钮用鼠标事件进入VB的下一页,在此谢谢了!

FLASH加载后是一个对像,你只要在这个对像的单击或双击事件里写进 入VB的下一页的代码就行了呀!
  
刚开始学习这个,如FLASH中不同的影片剪辑中使用了相同的变量名称,比如name,那vb在传数据给flash的时候会冲突??
   
我想问问,你们提到的在flash按钮,是指得独立于vb,做的flash里建立的吗
还是这个flash就是用vb做得阿

群贤毕至

访客