如何将鼠标事件发送到qaxwidget中的嵌入式Flash播放器

时间:2014-10-01 19:07:43

标签: c++ qt flash activeqt

我有一个QAxWidget,它嵌入了一个flash播放器并加载了一个swf。我不想使用小部件,但我想将小部件渲染为QImage,然后在OpenSceneGraph节点中将该图像用作纹理。到目前为止,一切都还可以。但由于没有可见的小部件,我必须从我的osgView获取鼠标移动/按下/释放事件,计算我的节点的相应位置,并将事件发送到flash播放器以使actionscript鼠标事件起作用。计算部分是明天的问题。但到目前为止,我无法向播放器发送任何自定义鼠标事件。有没有人有任何意见?

以下是示例代码

BFlashWidget::BFlashWidget(QWidget *parent)
    : QAxWidget(parent)
{
    QSize imgSize(800,600);
    setMinimumSize(imgSize);

    setMouseTracking(true);

    mQtImg = QImage(imgSize, QImage::Format_RGBA8888);

    setControl(QString::fromUtf8("{d27cdb6e-ae6d-11cf-96b8-444553540000}"));
    dynamicCall("LoadMovie(long, string)", 0,
                QDir::currentPath() + "//deneme.swf");
    activateWindow();
}

BFlashWidget::~BFlashWidget()
{

}

QImage BFlashWidget::getImage()
{
    QPainter painter(&mQtImg);
    render(&painter);

    return mQtImg;
}

void BFlashWidget::simulateMouseMove(QMouseEvent *e)
{
    QApplication::sendEvent(this, e);
    QApplication::processEvents();
}

void BFlashWidget::simulateMousePress(QMouseEvent *e)
{
    QApplication::sendEvent(this, e);
    QApplication::processEvents();
}

void BFlashWidget::simulateMouseRelease(QMouseEvent *e)
{
    QApplication::sendEvent(this, e);
    QApplication::processEvents();
}
当我调用那些simulateMouseXXXXX方法时,

播放器什么都不做

0 个答案:

没有答案