c++ - 如何将 mouseWheelEvent 发送到 SWF,加载到 QWebView

标签 c++ qt actionscript-3 flash mouseevent

我有一个程序,用 C++ 编写,使用 Qt 5.5.1(不能切换到另一个版本),在 Windows(7 或 10,无所谓)下运行。

所以我有一些 FlashWidget,它是 QWebView 的子类。它加载 html 文件,对其进行解析并将 %1 替换为 *.swf 的适当路径

<object 
    class="flashPlayer"
    width=90%
    height=100% 
    type="application/x-shockwave-flash"
    id="bridgemovie"
    data="%1"  >
    <param name="allowScriptAccess" value="always"/>
</object>

SWF 文件具有鼠标事件的事件监听器:鼠标按下、向上和鼠标滚轮

    addEventListener(MouseEvent.MOUSE_WHEEL, zoom); //"zoom" is just some internal function
    addEventListener(MouseEvent.MOUSE_DOWN, mouseDown1);
    addEventListener(MouseEvent.MOUSE_UP, mouseReleased);

问题:拖动和点击效果很好,但加载的 SWF 不接收滚轮事件。我不能修改 SWF 代码,只能修改 C++ 和 HTML 部分。那么,我如何才能将 mouseWheel 事件从 JS(或者,如果允许的话,可能是 QWebView)本地传递到加载的 SWF 文件?

P.S. 我试过用 QAxWidget 加载 SWF,并且收到了 wheelEvent,但是有一些渲染问题,所以我尝试用 QWebView 修复解决方案。

最佳答案

嗯,这看起来像是 Webkit 中的一个错误,因为在较新的版本和 WebEngine 中没有这样的问题。将尝试使用 QAxWidget。

关于c++ - 如何将 mouseWheelEvent 发送到 SWF,加载到 QWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41983332/

相关文章:

c++ - QSignalSpy 和 std::shared_ptr

Qt - 调用小部件父的插槽

image - AS3/AIR/Mobile - 将位图保存到文件

actionscript-3 - 在 AS3 中嵌入字体 - 动态文本字段消失

c++ - 使用标准输入 C++ 将整数读入 int 并将字符串读入字符串

c++ - 如何在 MSHTML 中禁用 VML

c++ - Qt moveToThread : What resources are brought with the object?

ios - 适用于 iOS 的 AS3 : how to serialize an array and then save it

c++ - 不匹配的 C++ header 版本

c++ - 更改比较函数以根据配对 vector 的第二个条目对绘图进行排序