Activex控件中嵌入Flash控件,IE上收不到FSCommand事件
Activex控件中嵌入Flash控件,IE下收不到FSCommand事件
在我的ActiveX中,会动态产生Flash控件,用来显示Flash文件,并且重写了_IShockwaveFlashEvents的Invoke函数,在VC中做过测试,可以收到FSCommand事件,但是在IE中,Flash文件能正常的显示出来,在网页刚加载的时候,Invoke函数会被调用,说明事件已经连接上了,但是点击Flash上的按钮,却收不到FSCommand事件。但是用360浏览器,就可以收到FSCommand事件,同样是IE的内核,也试过降低IE的安全设置,都没用。
但是发现一个网站上,在IE中实现了这个功能,就是在ActiveX控件里嵌入Flash动画,并且在网页里的JS里响应Flash中的FSCommand事件。我觉得他这个是ActiveX先接收了Flash的FSCommand事件,然后调用相应的JS脚本,去控制ActiveX本身的行为。
这个已经是老问题了,我搜了很多资料,很多人都有这个问题,但是都没发现一个解决的办法。
救命吧。。。
------最佳解决方案--------------------
看来今天都歇班。。。。
------其他解决方案--------------------
看了下,你那个地址一开始是flash窗口,然后进去里面之后,就是一个对话框窗口,没看到有什么flash控件
------其他解决方案--------------------
本来不想发那个实现IE下ActiveX和Flash通信的网址的。。怕有人说我是发广告的。。
但是刚才用Spy++看了下他的网页,在网页里查找窗口句柄时,只有一个ActiveX控件的窗口句柄,也就是说,他的Flash是直接绘制在ActiveX控件上的,而不是使用的Flash的控件,因为我的目前是动态生成一个Flash控件去显示,Spy++能看到这个Flash控件的窗口句柄。
那个网址是http://www.sun3d.com/case/huxing/demo.htm是他们公司的一个Demo页面,要安装ActiveX控件的。
求解。。。
------其他解决方案--------------------
是啊,现在周一都改休息了吗
------其他解决方案--------------------
但是你看那个地址里的源码,是加载了两个flash动画在 对话框窗口 上的,
然后提出出来,就是
http://www.sun3d.com/case/huxing/topflash.swf
和
http://www.sun3d.com/case/huxing/belowflash.swf
------其他解决方案--------------------
继续求解。。。
------其他解决方案--------------------
哎,好像没人在搞ActiveX了。。。
还是经理牛X,找到办法了。
------其他解决方案--------------------
我也碰到这个问题了,楼主能给出完整的解决方案么,谢谢啊
------其他解决方案--------------------
同求楼主的解决方案
在我的ActiveX中,会动态产生Flash控件,用来显示Flash文件,并且重写了_IShockwaveFlashEvents的Invoke函数,在VC中做过测试,可以收到FSCommand事件,但是在IE中,Flash文件能正常的显示出来,在网页刚加载的时候,Invoke函数会被调用,说明事件已经连接上了,但是点击Flash上的按钮,却收不到FSCommand事件。但是用360浏览器,就可以收到FSCommand事件,同样是IE的内核,也试过降低IE的安全设置,都没用。
但是发现一个网站上,在IE中实现了这个功能,就是在ActiveX控件里嵌入Flash动画,并且在网页里的JS里响应Flash中的FSCommand事件。我觉得他这个是ActiveX先接收了Flash的FSCommand事件,然后调用相应的JS脚本,去控制ActiveX本身的行为。
这个已经是老问题了,我搜了很多资料,很多人都有这个问题,但是都没发现一个解决的办法。
救命吧。。。
------最佳解决方案--------------------
看来今天都歇班。。。。
------其他解决方案--------------------
看了下,你那个地址一开始是flash窗口,然后进去里面之后,就是一个对话框窗口,没看到有什么flash控件
------其他解决方案--------------------
本来不想发那个实现IE下ActiveX和Flash通信的网址的。。怕有人说我是发广告的。。
但是刚才用Spy++看了下他的网页,在网页里查找窗口句柄时,只有一个ActiveX控件的窗口句柄,也就是说,他的Flash是直接绘制在ActiveX控件上的,而不是使用的Flash的控件,因为我的目前是动态生成一个Flash控件去显示,Spy++能看到这个Flash控件的窗口句柄。
那个网址是http://www.sun3d.com/case/huxing/demo.htm是他们公司的一个Demo页面,要安装ActiveX控件的。
求解。。。
------其他解决方案--------------------
是啊,现在周一都改休息了吗
------其他解决方案--------------------
但是你看那个地址里的源码,是加载了两个flash动画在 对话框窗口 上的,
VGS2.AddFlashGui("top", "topflash.swf","", 1, 0, 0, 920, 400, 0);//顶
VGS2.AddFlashGui("below", "belowflash.swf","", 7, 0, 0, 920, 320, 0);//底
然后提出出来,就是
http://www.sun3d.com/case/huxing/topflash.swf
和
http://www.sun3d.com/case/huxing/belowflash.swf
------其他解决方案--------------------
继续求解。。。
------其他解决方案--------------------
哎,好像没人在搞ActiveX了。。。
还是经理牛X,找到办法了。
CComPtr<IOleObject> spOleObject;
m_pFlash->QueryInterface(__uuidof(IOleObject), (void**)&spOleObject);
if (spOleObject)
{
hr = spOleObject->SetClientSite(m_spClientSite);
}
------其他解决方案--------------------
我也碰到这个问题了,楼主能给出完整的解决方案么,谢谢啊
------其他解决方案--------------------
同求楼主的解决方案