0

Flash Player を埋め込み、swf をロードする QAxWidget があります。ウィジェットを使用したくありませんが、代わりにウィジェットを QImage にレンダリングし、その画像を OpenSceneGraph ノードのテクスチャとして使用したいと考えています。これまでのところ、すべて問題ありません。しかし、ウィジェットが表示されないため、osgView からマウスの移動/プレス/リリース イベントを取得し、ノードに対応する位置を計算し、アクション スクリプトのマウス イベントが機能するようにイベントをフラッシュ プレーヤーに送信する必要があります。計算部分は明日の問題です。しかし、今まで、カスタム マウス イベントをプレーヤーに送信できませんでした。誰か意見はありますか?

これがサンプルコードです。

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メソッドを呼び出してもプレーヤーは何もしません

4

0 に答える 0