包含 SWF 的本地 HTML 无法连接到 Internet

Posted

技术标签:

【中文标题】包含 SWF 的本地 HTML 无法连接到 Internet【英文标题】:Local HTML containing SWF can't connect to the Internet 【发布时间】:2019-11-13 14:44:23 【问题描述】:

我的 Flash 项目通过我网站上的 php 页面从 Internet 下载数据。它在以下环境中可以正常工作,但是当我尝试使用包含 SWF 的本地 html 文件对其进行测试时,它将无法正常工作。

我的 SWF 可以在以下位置连接到 Internet:

Adobe Animate Test (Ctrl+Enter)
Adobe Animate Debug (Ctrl+Shift+Enter)
Standalone Flash Player
On my website in HTML (www.myWebsite.com/myFlash.html)

我的 SWF 无法连接到互联网:

local HTML file containing the SWF (C:\test\myFlash.html)

是否可以使用带有嵌入式 SWF 的本地 HTML 连接到 Internet?我一直在尝试让它在 Chrome、MS Edge 和 IE11 中运行,但没有成功。

这是我的 HTML:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Test</title>
  </head>
  <body style="background-color:#f0f5f8">
    <object   data="Main.swf" style="border:1px solid black; margin-left: auto; margin-right:auto; display:block">
      <param name="movie" value="Main.swf" />
      <param name="quality" value="high" />
      <param name="bgcolor" value="#000000" />
      <param name="play" value="true" />
      <param name="loop" value="false" />
      <param name="wmode" value="direct" />
      <param name="scale" value="showall" />
      <param name="menu" value="false" />
      <param name="devicefont" value="false" />
      <param name="salign" value="" />
      <param name="allowScriptAccess" value="always" />
      <param name="allowFullScreenInteractive" value="true" />
    </object>
  </body>
</html>

编辑:我让我的 SWF 输出错误消息,现在当我尝试在本地 HTML 中播放它时,TextField 显示“securityError - Error #2048”。这似乎是关于在网站上有一个 crossdomain.xml,我在 www.myWebsite.com/crossdomain.xml 上确实有:

<?xml version="1.0" ?>
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="master-only"/>
  <allow-access-from domain="*" />
</cross-domain-policy>

【问题讨论】:

转到相关设置页面,将您保存 HTML + SWF 的文件夹添加为受信任位置:macromedia.com/support/documentation/en/flashplayer/help/… (1) 您的Stand-Alone Flash Player 是否也是PPAPI 版本(Chrome 和Edge 使用的)? Download the SA Player 此处(获取适用于您的操作系统的 Chromium/Opera 调试器版本)。如果是,那么它应该可以工作。 (2) 您的.html 是否用于在与swf 文件本身相同的位置/文件夹中显示.swf(3) 我会认为 “危险:本地文件在此处与 Internet 通信” 安全问题是问题所在,但你说相同的 swf 在相同的本地工作正常使用 SA 版本时的文件夹。稍后将对此进行测试... 谢谢,但我已经使用了 Macromedia 页面并添加了受信任的位置。为了避免 Adob​​e Animate 调试器中的沙盒安全违规,我必须这样做。当我尝试在 Chrome 中打开本地 HTML 时,我没有收到来自浏览器的任何错误消息,尽管我可能需要让我的 SWF 输出一些错误消息以查看发生了什么。至于独立的 Flash Player,我使用的是该页面中的 flashplayer_32_sa.exe,效果很好。但这不会影响 Chrome 播放 Flash 的方式,不是吗? 【参考方案1】:

我想通了。我不得不在我的 crossdomain.xml 中更改这一行:

<allow-access-from domain="*"/>

到这里:

<allow-access-from domain="*" secure="false"/>

我的站点实际上是https://www.myWebsite.com/,这意味着我需要secure="false" 以便非https 站点可以访问它。

【讨论】:

以上是关于包含 SWF 的本地 HTML 无法连接到 Internet的主要内容,如果未能解决你的问题,请参考以下文章

swf 文件发布后无法播放

无法将本机反应连接到本地主机

无法连接到本地主机上的 XAMPP 服务器

无法连接到本地 Node.js 安全 WebSocketServer

Android 模拟器无法连接到本地服务器(未指定输入文件)

启用 SSL 的网站无法连接到本地 C# Web 套接字服务器