用flash控件,可以接受fscommand事件。: Private Sub swfPlayer_FSCommand(ByVal command As String, ByVal args As String) 'MsgBox command End Sub 这样你就可以接收flash的按钮事件或者任何其他你定义的fscommand。与flash互动。
因为flash控键没有MouseMove和KeyDown事件, 所以vb中无法捕捉这些事件。 但是有一些间接方法可以实现: KeyDown事件:Form的KeyPreview = True 在界面上放一个别的控键,比如PictureBox,把它移到屏幕之外。用一个timer定期让它得到焦点。在Form的KeyDown事件中捕捉就可以了。Option ExplicitPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) MsgBox KeyCode End SubPrivate Sub Form_Load() Me.KeyPreview = True Timer1.Interval = 500 Timer1.Enabled = True End SubPrivate Sub Form_Resize() ShockwaveFlash1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight Picture1.Move Me.ScaleWidth End SubPrivate Sub Timer1_Timer() Picture1.SetFocus End SubMouseMove事件:这个我没有试过,但我想可以通过与Flash文件的交互来实现。Flash动画可以捕捉到MouseMove事件。把它通过FsCommand命令和参数的形式传递给vb,在vb中响应FSCommand就可以了。
: 5653325(等待开刃的刀) (这个涉及到跟Flash的交互问题,不是vb一方就能做到的。Flash的 Action Script 你应该了解一些吧。在做Flash时。在鼠标响应中加入一些FSCommand.将你要的东西,如位置等通过命令和参数的形式传递给vb. vb代码:Private Sub swfPlayer_FSCommand(ByVal command As String, ByVal args As String) 'MsgBox command End Sub
控制动画的显示位置(把这两个属性列在一起说明它们是相互关联的,改变一个另一个也会相应地改变,后面类似的情况就不作说明了)。取值范围及含义如下:
0 空 当前位置
1 L 当前位置靠左
2 R 当前位置靠右
3 LR 当前位置居中
4 T 当前位置靠上
5 LT 左上
6 TR 右上
7 LTR 上方居中
8 B 当前位置靠下
9 LB 左下
10 RB 右下
11 LRB 下方居中
12 TB 当前位置垂直居中
13 LTB 靠左垂直居中
14 TRB 靠右垂直居中
15 LTRB 中央位置
【属性】BackgroundColor(int型)和BGColor(WideString型) 设置背景颜色,BackgroundColor为整型值,BGColor为它的HEX字符串。
【属性】Loop(bool型) 是否循环显示
【属性】Menu(bool型) 是否显示右键菜单,建议设为true,因为它可以完成对Flash动画的大部分控制工作,而不用我们写代码。
【属性】Movie(WideString型) Flash动画的文件名,可以在运行状态动态设置,要关闭一个动画只要把它设为空即可。
【属性】Quality(int型)和Quality2(WideString型) 控制动画的显示质量,一般将Quality设为1以获得高质量的显示效果。
【属性】ScaleMode(int型)和scale(WideString型) 控制动画的显示比例,取值范围及含义如下:
0 ShowAll 显示全部
1 NoBorder 无边框模式
2 ExactFit 拉伸到整个画面
3 空 原始大小
【方法】PercentLoaded 返回动画已经加载的百分比,你可以建立一个进程条(ProgressBar)来显示动画加载的进程。
【方法】LoadMovie 用于加载网络上的动画,动画文件名为一个BSTR型的URL值,在 C++ Builder 中可以用 AnsiToOLESTR 函数将Char型的字符串转换成BSTR型。
谢谢
Private Sub swfPlayer_FSCommand(ByVal command As String, ByVal args As String)
'MsgBox command
End Sub
这样你就可以接收flash的按钮事件或者任何其他你定义的fscommand。与flash互动。
可是我还不懂,如果在全屏播放flash的时候怎么响应鼠标或键盘事件呢?比如鼠标移动,键盘按下等等?
谢谢
vb中如何调用flash
主要属性:
movie:连接flash,包括flash文件所在的路径
playing:true 和 false 为true时flash可以播放
其他属性默认值即可!
所以vb中无法捕捉这些事件。
但是有一些间接方法可以实现:
KeyDown事件:Form的KeyPreview = True 在界面上放一个别的控键,比如PictureBox,把它移到屏幕之外。用一个timer定期让它得到焦点。在Form的KeyDown事件中捕捉就可以了。Option ExplicitPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox KeyCode
End SubPrivate Sub Form_Load()
Me.KeyPreview = True
Timer1.Interval = 500
Timer1.Enabled = True
End SubPrivate Sub Form_Resize()
ShockwaveFlash1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
Picture1.Move Me.ScaleWidth
End SubPrivate Sub Timer1_Timer()
Picture1.SetFocus
End SubMouseMove事件:这个我没有试过,但我想可以通过与Flash文件的交互来实现。Flash动画可以捕捉到MouseMove事件。把它通过FsCommand命令和参数的形式传递给vb,在vb中响应FSCommand就可以了。
能给段代码吗?
谢谢了
vb代码:Private Sub swfPlayer_FSCommand(ByVal command As String, ByVal args As String)
'MsgBox command
End Sub
如果是全屏播放别人做好的flash就不行吗?