vb怎么向flash以送消息?
1个回答
展开全部
VB中的代码:
Private SubswfFlashScreen_FSCommand(ByVal command As String, ByVal args As String)
If command ="setvalue" Then
CallswfFlashScreen.SetVariable("sampleFieldVar", value)end ifend sub
从VB发布通知到FLASH
从FLASH中呼叫VB中的方法可以通过FSCommand这一"接口"轻松实现.而反过来,由VB向FLASH发布呼叫通知却没有直接的方法.
假设FLASH通过FSCommand呼叫VB做一些操作,当VB把这些操作执行完毕的时候,要向FLASH反馈一个消息告知操作完成.但是VB却不能直接呼叫FLASH中的方法,但是我们可以使用数据传递机制,(即setVariable)来模拟呼叫方法.
我们通过FLASH等待某一特定变量值来实现上述呼叫过程.在FLASH中设定一个循环监听器,监听从VB传来的被改变的特定变量的值.VB将先前的操作完成后,执行setVariables方法将FLASH中正被监听着的变量赋以新值.这时.正在监听的FLASH判定该变量值是否改变.如果改变,即说明,VB已经执行完它的操作.换句话讲.也可以在这里设里消息筛选.根据该变量的不同的值,呼叫FLASH中不同的方法,从而间接地实现VB呼叫FLASH中方法的目的.
举一个例子说明.放一个动态文本框在主场景.设其默认值为undefined.这时,我们呼叫VB,让其做我们想要的操作,当操作完毕时,VB将文本框里的值改变,即,将文本变量值改变.而在FLASH这边,已经设定好的定时器正以某种频率监听着该文本变量的值是否改变.如果改变,说明VB执行完毕.清除定时器.再呼叫FLASH相关的方法,当然,如果有必要的话.
例子://创建一个变量名为VBCalling的动态文本框
// 这个方法用于呼叫VB,将同时开始执行keepWaitingForResponse方法.监听变量值是否经由VB改变.
functionCallVBFunction() {
fscommand(“Test”,“Test”); // 呼叫VB中的方法
keepWaitingForResponse();// 呼叫FLASH中的方法}//该函数在VB未收到数据改变的命令是不会向前执行,将一直处于监听状态
functionkeepWaitingForResponse() {
intervalID =setInterval(
function () { //该函数每过100毫秒执行一次,直到定时器被清除
if (VBCalling !=undefined) {
VariableReturned(VBCalling);}
}, 100);}//该函数只在监听发现变量值被VB改变的时候被执行.
functionVariableReturned(value) {
clearInterval(intervalID);// 清除定时器,结束监听
//你可以在这里放上其它FLASH中的方法,如果有必要的话}KAN:可以说,FLASH正是利用了FSCommand这一"接口"来实现与VB程序的交互.既能让FLASH调用VB中的方法,也能让VB轻松控制FLASH影片的播放.
更多FLASH插件方法,请在VB工程中按F2,再找到shockwaveFlash插件.你会发现有好多关于桢控制的方法,以及一些关于加载的方法.
用VB做自己的可以拖动播放的FLASH播放器,也就变得容易了.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询