【发布时间】:2011-11-08 21:28:55
【问题描述】:
我可以创建一个用作网络浏览器的 Flash 文件吗?所以基本上,Flash 的行为类似于 Internet Explorer 或 Firefox,可能就像在 iframe 中加载页面一样。
这可能吗?
【问题讨论】:
我可以创建一个用作网络浏览器的 Flash 文件吗?所以基本上,Flash 的行为类似于 Internet Explorer 或 Firefox,可能就像在 iframe 中加载页面一样。
这可能吗?
【问题讨论】:
不,这是不可能的¹。 Flash 显示在已在浏览器内部运行的 Flash Player 中。因此,即使有可能,您也需要运行浏览器来运行 Flash Player,然后再运行您的“网络浏览器”。此外,Flash 无法呈现 HTML,因此无法用于直接显示网页内容。
唯一的选择是使用 Adobe AIR,它是 Webkit 浏览器附带的用于 Flash 内容的桌面运行时环境。该浏览器框架也用于 Chrome 和 Safari 等浏览器。但是,如果您的应用程序应该做的只是模仿浏览器,那么这样做不会给您带来任何好处。 AIR 中包含的 Webkit 浏览器只包含最基本的模块,很多人们通常期望从浏览器中得到的东西都无法实现。
¹ 正如 cmets 中提到的,在 ActionScript 中实现完整的 HTML 渲染引擎可能是可能的。但是,这需要付出很多努力,尤其是如果您想获得几乎与当前浏览器功能类似的良好覆盖面。鉴于 Flash 在 Flash Player 内部运行,从技术上讲是一个虚拟机,它本身运行嵌入在浏览器中²,但是性能会相当糟糕。因此,除了理论上可行之外,我认为朝这个方向工作不会有任何好处(再次重申:如果您出于与上述相同的原因只想模仿普通浏览器,则尤其如此)。
² 在另一个评论出现之前; Flash 可以编译为可执行文件,因此它不需要在浏览器中运行。有多种方法可以做到这一点,但总体而言,情况并没有变得更好。那时你最好使用 AIR(它已经具有 Webkit 进行渲染)。
【讨论】:
我的意思是你可以做到(有点),但它正常工作所花费的时间将是疯狂和不值得的。
您必须首先介绍这些内容:
<img> 标签并将适当的图像加载到适当的位置,然后剥离+渲染任何文本。至于 JavaScript 或类似的 - 除非您要创建一个额外的系统,以某种方式将 HTML 的 JavaScript 操作转换为您的 Flash 对象的 AS3 操作,否则您可能不得不放弃它。
基本上 - 这是可以实现的(部分)但不可行。您将无法涵盖浏览器本身大约 75% 的功能,更重要的是:这就是浏览器的用途。
【讨论】: