1

我有:

  • Swf 文件,即 a) 通过 ExternalInterface.addCallback 将其方法之一提供给外部世界;b) 通过 ExternalInterface.call 调用预定义的外部世界方法;
  • html 页面,此 Swf 文件所在的位置。该html中有两种javascipt方法:一种用于调用swf-published-method,一种用于被swf调用;
  • Qt-app,通过 QWebView->QWebPage 加载这个 html 页面。

当我在 FireFox 中加载这个 html 页面时,一切正常:可以从 javascript 调用 Swf,反之亦然。但是在 Qt-app 中只有 swf 可以调用 javascript 方法,反之则不行。调用 swf 方法失败,并在 javascript 控制台上打印以下消息:“在 NPObject 上调用方法时出错”。

任何想法如何使 Qt 应用程序的行为像 FireFox,即可以从 javascript 调用 Swf?任何帮助将不胜感激,

背景:

  • Qt 4.6.2;
  • 库本图 10.04;
  • Swf 是使用 Flex 4 构建的;
  • Swf 是本地受信任的。
4

1 回答 1

1

自己解决问题。

加载html页面的原始代码是这样的:

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 回答