2017-02-01 13 views
2

У меня есть программа, написанная на C++, с использованием Qt 5.5.1 (не может переключиться на другую версию), работающей под Windows (7 или 10, не имеет значения) ,Как отправить mouseWheelEvent в SWF, загруженный в QWebView

Так что у меня есть 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); 

Problem: Перетаскивание и щелчок работают очень хорошо, но загруженный SWF не получает события колеса. Я не могу изменить SWF-код, только части C++ и HTML. Итак, как я могу изначально передать событие mouseWheel из JS (или, возможно, QWebView, если это разрешено) в загруженный SWF-файл?

P.S. Я пробовал загружать SWF с QAxWidget, и получил wheelEvent, но есть некоторые проблемы с рендерингом, поэтому я пытаюсь восстановить решение с помощью QWebView.

ответ

0

Ну, это похоже на ошибку в QWebkit, потому что такой проблемы нет в более новых версиях и QWebEngine. Попробуем вместо этого использовать QAxWidget.