请教高手!!!关于shockwaveFlash控件的问题?

fly@ 2006-03-20 03:47:21

用VB做了个程序,开始用这个控件播放Flash动画片,当用户鼠标单击时,退出Flash 动画,进入主程序?;
或是动画播放完了以后,在进入主程序?.
也可做个按钮,但不美观.shockwaveFlash 控件没有Click()事件,怎样解决?

...全文
325 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly@ 2006-03-29
  • 打赏
  • 举报
回复
搞定了
fly@ 2006-03-28
  • 打赏
  • 举报
回复
问高手一下。
Private Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, _
ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long

Public hnexthookproc As Long
Const HC_ACTION = 0
Const WH_KEYBOARD = 2
Const WH_MOUSE = 7

Public Sub UnHookKBD()
UnhookWindowsHookEx hnexthookproc
End Sub

Public Function EnableKBDHook()
hnexthookproc = SetWindowsHookEx(7, AddressOf MyKBHFunc, App.hInstance, 0)
End Function

Public Function MyKBHFunc(ByVal iCode As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
If wParam = 513 Then ‘ 513 既是点击左键
UnHookKBD ‘卸载钩子函数
Unload Form1 ’ 执行到此处form1却无法卸载。form1上的flash仍在播放。
End If
End Function
以上代码在标准模块

以下是form1的代码:
Private Sub Form_Load()
SF1.Height = Screen.Height
SF1.Width = Screen.Width
Form1.Height = Screen.Height
Form1.Width = Screen.Width
Form1.Top = 0
Form1.Left = 0
SF1.Movie = App.Path + "\1.swf"
Call EnableKBDHook
End Sub

Private Sub Form_Unload(Cancel As Integer)
Form2.Show 1
End Sub

form2为一空白框体
fly@ 2006-03-25
  • 打赏
  • 举报
回复
感谢楼上,问题已解决。两种方法1。wmode=transparent 在给上放已标签
2。使用API,钩子函数
fly@ 2006-03-23
  • 打赏
  • 举报
回复
楼上能否说的详细点?
LichKingSZ 2006-03-23
  • 打赏
  • 举报
回复
rainstormmaster的方法是可以的,不过动画也变得透明了。。。
fly@ 2006-03-23
  • 打赏
  • 举报
回复
Wmode使什么意思?
我干才试了一下,不行。
程序开头要求Flash全屏显示。
rainstormmaster 2006-03-23
  • 打赏
  • 举报
回复
//我试了,可还不行,不知为什么?

可能是flash动画中有超级链接或跳转之类的东东(在鼠标经过时鼠标指针会变为手型)

在flash动画上做文章,可以参考:
http://aowind.cnblogs.com/archive/2005/02/07/103109.aspx
fly@ 2006-03-23
  • 打赏
  • 举报
回复
我试了,可还不行,不知为什么?
LichKingSZ 2006-03-23
  • 打赏
  • 举报
回复
Wmode属性应该windows mode的意思吧。。。
默认为window,设置为Transparent后flash的背景窗体透明,所以在flash上click时就会直接触发form_click事件
rainstormmaster 2006-03-22
  • 打赏
  • 举报
回复
这样吧,将flash控件的wmode属性设为Transparent,然后处理flash控件所在容器的click事件,比如flash控件放在窗体上,则这样即可:
Private Sub Form_Click()
MsgBox "hello"'换成你的代码
End Sub
colorslife 2006-03-22
  • 打赏
  • 举报
回复
刚才试了一下,

Label根本无法放在shockwaveFlash上面,总是在下面

所以还得想其他方法,

抱歉……
colorslife 2006-03-22
  • 打赏
  • 举报
回复
放一个Label 在shockwaveFlash 上面
设置Label 的BackStyle属性为0(Transparent)

而且BorderStyle也设置为0(None)
Label和shockwaveFlash同样大小。

Label不是有Click事件吗?
fly@ 2006-03-20
  • 打赏
  • 举报
回复
二楼请详细说明,谢谢。
flash动画是公司其他人做的。我只管调用,我也不flash。咋整?谢谢二楼
fly@ 2006-03-20
  • 打赏
  • 举报
回复
在flash里做按钮是可以,但这样影响效果呀。
fly@ 2006-03-20
  • 打赏
  • 举报
回复
楼上是说在flash里做个按钮码?
或是其他方法?请详细说明!! 谢谢
iamxiang 2006-03-20
  • 打赏
  • 举报
回复
将FLASH放在启动屏幕里,但设为无边框模式,然后做FLASH时,将最上一层做一个按纽,然后按纽的action可以触发VB程序的过程,退出窗体。
rainstormmaster 2006-03-20
  • 打赏
  • 举报
回复
假如flash动画是你自己做的话,可以在flash动画上做文章
colorslife 2006-03-20
  • 打赏
  • 举报
回复
放一个Label 在shockwaveFlash 上面
设置Label 的BackStyle属性为0(Transparent)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧