1

私は持っている:

  • a) ExternalInterface.addCallback を介して、そのメソッドの 1 つを外部の世界で使用できるようにする SWF ファイル。b) ExternalInterface.call を介して定義済みの外界メソッドを呼び出します。
  • この Swf ファイルが存在する html ページ。この html には 2 つの javascipt メソッドがあります。1 つは Swf-published-method を呼び出すためのもので、もう 1 つは swf によって呼び出されるためのものです。
  • QWebView->QWebPage を介してこの html ページをロードする Qt-app。

この HTML ページを FireFox にロードすると、すべて正常に動作します。Swf は JavaScript から呼び出すことができ、その逆も可能です。ただし、Qt アプリ内では、swf のみが javascript メソッドを呼び出すことができますが、その逆はできません。swf メソッドの呼び出しが失敗し、javascript コンソールに次のメッセージが出力されます:「NPObject のメソッドの呼び出し中にエラーが発生しました」。

Qt-app を FireFox のように動作させる方法、つまり javascript から Swf を呼び出せるようにする方法はありますか? どんな助けでも大歓迎です、

背景:

  • Qt 4.6.2;
  • クブンツ 10.04;
  • SWF は Flex 4 で構築されました。
  • SWF はローカルで信頼されています。
4

1 に答える 1

1

自分で問題を修正しました。

html-pageをロードするための元のコードは次のようになりました。

QFile html(<theHtmlPageFileName>);

html.open(QIODevice::ReadOnly);

m_page->mainFrame()->setContent(html.readAll());

書き直されたバリアント:

m_page->mainFrame()->load(<theHtmlPageFileName>);

後者のバリアントでは、すべてが正常に機能します。

ところで:Windowsでは最初のバリアントも機能します。

于 2010-08-12T18:45:17.463 に答える