0

我有一个我创建的 swf,用于制作一些 HTML 帖子。当我在本地运行和编译 swf 时,它成功地向我的域上托管的我的 php 代码发布帖子。但是,当我随后将我的 swf 上传到我的域,然后更改 embed 标记以具有到我的托管 swf 的完全限定路径时,该 swf 将正确加载,但它会将任何 HTML 帖子发送到我的 PHP 脚本。我有一个带有完全限定 url 的 embed 标记的原因是,我的目标是能够将 html 嵌入代码放置在许多不同的站点上。

我让它在一个远程站点上工作,它有一个通配符 crossdomain.xml 文件。但是,当我尝试将 crossdomain.xml 应用于任何托管站点或本地计算机时,当我使用带有完全限定 URL 的嵌入时,如果我只是计算机上本地托管的 swf,则 HTML 发布工作不会运行正好。

我觉得这与 crossdomain.xml 文件有关,但是我想我不了解安全模型的某些方面。

所以我的目标是能够将嵌入 HTML 代码与完全限定的 swf(例如,“http://www.abc.com/myswf.swf”)粘贴到许多其他网站上,并使其成为标准 HTML发布到我的主页 (http://home.com)。

感谢您对此的任何帮助。我太接近了,就像我说我让它在一个远程站点上工作一样,但我不确定如何。我发布嵌入代码的所有其他网站都失败了。

4

1 回答 1

1

好的,我正在按照您刚刚给出的示例编辑我的答案。

根据我得到的错误报告,问题在于不允许从 swf 到托管您的 swf 的站点的 ExternalInterface 调用。

它在第二个示例中有效,因为调用是在同一个沙箱中进行的。

取自文档:

   SecurityError — The containing environment belongs to a security sandbox 
   to which the calling code does not have access. To fix this problem, 
   follow these steps:
    In the object tag for the SWF file in the containing HTML page, 
   set the following parameter:
   <param name="allowScriptAccess" value="always" />

   In the SWF file, add the following ActionScript:
   flash.system.Security.allowDomain(sourceDomain)

您可能还需要检查嵌入代码中的 allowNetworking 参数...

于 2010-12-06T02:19:25.660 回答