【问题标题】:Embedding webpage in Flash在 Flash 中嵌入网页
【发布时间】:2009-07-05 13:51:53
【问题描述】:

我对 Flash 知之甚少,因此也不会在其中编程。我有一个 PHP 网站,显然还有 HTML、CSS、JS 等。

我想做的是允许用户全屏显示 DOM 的某些部分。所以我的问题是,有没有什么办法可以动态地将 flash 包裹在 DOM 的某些部分周围,以允许对该部分进行全面筛选。

编辑:

目前的反应非常有趣,可能是唯一的选择。

但在我的理想世界中,会有一个嵌入的 flash 对象,并且在里面会有某种 iframe 或等效的 flash,因此渲染仍然由浏览器处理,而不是 flash 本身。

【问题讨论】:

  • Flash 是 Adob​​e 自己的技术。浏览器本身不知道如何处理 flash,因此隐藏在其中的东西无法被浏览器呈现。这在任何世界都是不可能的。
  • 一定要用flash吗?如果没有,您可以指示他们在 Windows 上使用 F11,或使用 lifehacker javascript 在 OSX 上最大化 Firefox。
  • 没有必要使用flash,但这是我知道实现真正的一键全屏的唯一方法。从可用性的角度来看,指导他们 F11 是不可行的。

标签: flash


【解决方案1】:

标准的 Flash 播放器没有 iFrame 的概念。使用 AIR,您可以在 Flash 应用程序中嵌入浏览器(基于 WebKit),但这仅适用于桌面应用程序。

唯一真正的方法是让 Flash 通过 ExternalInterface 读取到 DOM,拉入页面结构,然后在 Flash 中重新创建它。其复杂性取决于页面的复杂性以及如何选择呈现从 DOM 获得的内容。

【讨论】:

  • javascript 可以在 flash 中工作吗?或者我是否必须将其制作成 Flash 脚本或其他任何内容。
【解决方案2】:

Flash 非常受限于它可以在 Flash Player 中自己呈现的 HTML(粗体、斜体、下划线、a、ul、li 和 img 我认为是唯一支持的标签)。 AIR 呈现完整的 HTML,但这对您毫无帮助。

您可以尝试使用 html 解析器。我没有花太多时间在 Flash 中使用 html,所以我不知道哪个解析器做得最好。这是一个看起来不错的:

http://code.google.com/p/htmlsprite/

一旦您的 html 正确呈现在 flash 中,剩下的就很容易了。 假设全屏是您的全屏按钮。

fullscreen.addEventListener(MouseEvent.CLICK, fullscreenClicked);

function fullscreenClicked(event:MouseEvent):void{

switch(stage.displayState) {
                case StageDisplayState.NORMAL:
                    stage.displayState = StageDisplayState.FULL_SCREEN;
                    break;
                case StageDisplayState.FULL_SCREEN:
                default:
                    stage.displayState = StageDisplayState.NORMAL;
                    break;
            }
            trace('stage.displayState: ' + (stage.displayState));

}

正如 Krish 所说,不要忘记在 embedobject 标记中将 allowFullScreen 设置为 true。此外,您只能在浏览器中进行测试,而不能在 IDE 中进行测试。

【讨论】:

    【解决方案3】:

    使用allowFullScreen="true"嵌入标签

    <embed src="kitchen.swf" allowFullScreen="true" bgcolor="#333333" width="1024" height="576"
     name="fullscreen" align="middle" type="application/x-shockwave-flash"
     pluginspage="http://www.macromedia.com/go/getflashplayer" />
    

    【讨论】:

      【解决方案4】:

      如果您问它是否会全屏显示页面的 HTML,那么不会 - 我以前从未听说过这样的事情(至少没有使用 Flash)。

      你可以使用一些 jQuery 通过增加内容的规模和父元素内部的元素来完成类似的事情,但听起来至少很难说。

      【讨论】:

      • 其实我正在这样做,但它不是真正的全屏。 :)
      猜你喜欢
      • 1970-01-01
      • 2013-04-03
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 2012-11-12
      • 1970-01-01
      • 2012-01-07
      相关资源
      最近更新 更多