★点击flash上的按钮,消息传给pb程序?★

theng 2002-08-12 03:54:58
加精
我们知道,通过嵌入shockwav的ocx,可以实现在pb窗口中放映flash。但是,当用户点击flash上的按钮时,这个消息怎样传给pb呢?

我试过在window上放一个透明的控件在flash的按钮上,捕获控件的事件。但是好像该控件总是被flash遮住。

各位有什么好办法吗?
...全文
101 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunfor 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 dekker 的回复:]
flash 控件中有对象fscommand 可以通过其传递参数
在flash 下编程:

例如:
Flash对象FSCommand事件参数传递表

Command Args 对应的窗口名称或动作
Open W_Cai_Gou
Open W_Ying_Yun
Open W_Pei_Song
Open W_Cai_Kuai
Open……
[/Quote]
学习了。。。
theng 2002-08-21
  • 打赏
  • 举报
回复
我已经用消息的方法实现了,才发现原来macromedia已经提供了接口。

多谢各位,特别是 dekker(迪克牛仔)。
  • 打赏
  • 举报
回复
theng (手心忽然长出纠缠的曲线) 兄台,是否清楚明了,如果不清楚,可以提,如果解决,可以给小弟的专家分吗???
ninesuns 2002-08-16
  • 打赏
  • 举报
回复
注册flash控件后,会有两个新加的事件。
两个新加的事件参数中要有你预先定义的标志,加以判断即可,如楼上。
  • 打赏
  • 举报
回复
flash 控件中有对象fscommand 可以通过其传递参数
在flash 下编程:

例如:
Flash对象FSCommand事件参数传递表

Command Args 对应的窗口名称或动作
Open W_Cai_Gou
Open W_Ying_Yun
Open W_Pei_Song
Open W_Cai_Kuai
Open W_Cha_Xun
Open W_Guan_Li 管理维护系统
Open
Open
Halt True Exit the program.


在button 上编写:
on (press) {
fscommand("Open", "W_Cai_Gou");
}

.........



在pb 6.5 下编写:
窗口open()

装载flash 并播放。

在ole_1 控件上的fcommand ()事件编程

choose case command
case 'Open'
choose case args
case 'W_Cai_Gou'
OpenWithParm(w_mdi_frame, "1")
case 'W_Ying_Yun'
OpenWithParm(w_mdi_frame, "2")
case 'W_Pei_Song'
OpenWithParm(w_mdi_frame, "3")
case 'W_Cai_Kuai'
OpenWithParm(w_mdi_frame, "4")
case 'W_Cha_Xun'
OpenWithParm(w_mdi_frame, "5")
case 'W_Guan_Li'
OpenWithParm(w_mdi_frame, "6")
end choose

case 'Halt'
if args = 'True' then
halt;
end if


end choose

注意: 1. command 是flash 参数
2. args 是flash 参数
3. 'Open' 'W_Ying_yun'都是参数直,区分大小写

一切搞定。 别忘了给我加分,不然我可 &_& ^_^
frankhorse 2002-08-15
  • 打赏
  • 举报
回复
哈哈,没那么复杂吧!
再制作flash时候,在fscommand中编程序。然后通过ole的fscommand()读取再处理!:)frankhorse@163.net
  • 打赏
  • 举报
回复
完全可以搞定的,但是必须需要flash 和pb两方面都要编写程序。
我的地址:dekkerdillon@263.sian.com
uno 2002-08-15
  • 打赏
  • 举报
回复
shockwave的ocx应该可以回送相应消息给容器的
有帮助文档吗?
lif_009 2002-08-15
  • 打赏
  • 举报
回复
你的邮箱是?
我以前做过,记不太清楚,要查一下源程序
你发邮件提醒我吧!lif_009@163.com
xjl 2002-08-13
  • 打赏
  • 举报
回复
study
xingxing 2002-08-12
  • 打赏
  • 举报
回复
可能要用到windows消息处理
hjd_cw 2002-08-12
  • 打赏
  • 举报
回复
在 WM_NCHITTEST 消息上琢磨一下吧。
tonie 2002-08-12
  • 打赏
  • 举报
回复
现在只能用pb了,webservice和asp都不现实。
大家帮忙啊
heliang 2002-08-12
  • 打赏
  • 举报
回复
(转贴一片近试的东东,希望对你有帮助)

关键字 在FLASH中调用ASP

出处 http://yaozheng.2911.net/viewarticle.asp?id=58


在FLASH中调用ASP

在Flash中使用ASP需要的条件:
1。你的ISP的server必须支持Active Server Pages并且最好支持数据库
2。你应该要安装Flash 4
3。需要你对ASP有初步的了解
OK,下面具体介绍怎么使用:
数据库结构:
第一步要做的是建立数据库.例子中使用Access数据库,表名为tblStaff
有三个字段:strID (自动编号), strKnownAs(Text),strSurname (Text).
这是一个用来示范用户名的数据库,随便加些数据把.
第二步就是建立一个Flash 4的动画罗:
步骤如下:
1)建立三个text field.它们是用来显示数据用的
2)把第一个text field的name设置为Input,它是用来接收输入数据的
3)另外两个text field分别命名为KnownAs和Surname
4)其它设置先为默认
5)最后,从Flash的library中选择增加一个按钮 (应该是一个可重用的组件ScrollBarButton ).
这是很重要的一步,按钮将把输入的变量传递给ASP页面到按钮的属性(Properties)上单击Action页. 单击"+"号和On MouseEvent.勾上Release框.
6)再次单击"+"号和Load/Unload Movie.选择"Load Variables Into Location"
在URL输入框内输入你的ASP文件名(例如flash.asp). 选择Target.
7)最后,选择Variables中的Send using POST. 单击"+"号来设置变量
在Variable输入框内输入"Input"(就是第一个text field的name)
当上面的工作都完成后,你应该在action box内看到如下内容:
On (Release)
Load Variables ("flash.asp", "", vars=POST)
Set Variable: "Input" = ""
End On
这样当在动画过程中这个按钮被点击并释放后,Input输入框中的内容将被传递给flash.asp文件.
注意form是使用的post方式传递变量的.
8)现在建立一个HTML页面,在其中包含这个Flash动画文件
第三步:ASP文件的代码
<%
Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
Connection.Open "people" '你的数据库连接的DSN
SQL = "SELECT * FROM tblStaff WHERE strID=" & Request.Form("Input") & ";"
Recordset.Open SQL,Connection,1,2
If Recordset.EOF Then
KnownAs = "Not"
Surname = "Found"
Else
KnownAs = Recordset ("strKnownAs")
Surname = Recordset ("strSurname")
End If
Recordset.Close
Connection.Close
response.write("KnownAs="+Server.URLEncode(KnownAs))
response.write("&Surname="+Server.URLEncode(Surname))
%>
需要注意的是在把KnownAs和Surname传递回去的写法,将是这样的
KnownAs=Data1&Surname=Data2
使用Server.URLEncode(VariableName)来保证传递过去变量的是按照 URL格式编码的
下面简单介绍一下ASP和Flash通讯的原理:
变量其实都是通过URL传递给Flash的,其实这是一种GET方法
你不使用ASP其实也可以把变量传递给一个swf文件的,只要这样:
<PARAM NAME=movie VALUE="myMovie.swf?myVariable=Text+of+my+variable">
接着文本"Text of my variable"将会出现在Flash的动画中指定的位置
好了,该说的都说了,现在对于ASP的开发者来说,只要把Flash所需要的数据准备好,然后利用Flash中的动画
功能就可以做出强劲的网页出来了.最简单的是利用flash结合数据库画一个很漂亮的饼图,呵呵.反正只要大家能够想象就可以做出很多很好的东西出来的.

hjd_cw 2002-08-12
  • 打赏
  • 举报
回复
建议用spy++跟踪一下,看鼠标点击时,窗口或对象会处理那些消息?筛选一下,或许能找到线索!(我经常这么干)
newbiegao 2002-08-12
  • 打赏
  • 举报
回复
其实用Webservice 就可以解决。
我做过使两个不同语言编译的系统通讯的集成系统,就是用Webservice 来做的
lkyuan 2002-08-12
  • 打赏
  • 举报
回复
何必这么复杂啊~~~自找~~
hzhxxx 2002-08-12
  • 打赏
  • 举报
回复
我想没有办法!因为 flash 下没有 PB 能够得到的消息!

1,079

社区成员

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

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