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