【问题标题】:How did scribd implement their 'fullscreen' mode?scribd 是如何实现他们的“全屏”模式的?
【发布时间】:2009-12-12 06:24:19
【问题描述】:

scribd 全屏模式非常简洁(例如:http://www.scribd.com/doc/13161906/Java-Lab-Manual-With-Java-Installation-Guide?classic_ui=1)。优点(特别是对于 RIA)是它不会(几乎)像 Flash Player 中的“默认”全屏模式那样完全禁用键盘。嵌入时似乎也可以工作。

他们是怎么做到的?

【问题讨论】:

    标签: apache-flex flash fullscreen scribd


    【解决方案1】:

    该示例根本没有使用全屏。他们认为“全屏”只是最大化 Flash 窗口以占据整个浏览器区域。浏览器的工具栏和状态栏和 chrome 仍然可见,浏览器之外的任何东西都可见。

    对于嵌入在 HTML 页面中的 Flash/Flex 小部件来说,这是一个不错的效果,但它与全屏不同。

    实施主要在 JavaScript/DOM 方面,仅在 Flash/Flex 中进行。当用户单击“全屏”时,使用 ExternalInterface 调用 JavaScript 函数。然后这个 JS 函数需要重新定位和调整 Flash 元素的大小,使其位于 (0,0) 并占据整个屏幕。如果 HTML 比页面长,那么您还需要隐藏它以使浏览器的滚动条消失,就像 scribd 示例一样。 Flex/Flash 应用程序中的另一个按钮提供了一个关闭或相关按钮来反转该过程。

    作为一名 Flex 开发人员,我反对为此使用“全屏”一词。全屏是许多 Flash/Flex 应用程序的常用功能,尤其是视频播放器。使用该术语来表示不同的含义会使用户感到困惑。 “最大化”比“全屏”更合适。

    【讨论】:

      【解决方案2】:

      scribd 是如何实现他们的“全屏”模式的?

      如果你问我不是很好。他们的界面在 Ubuntu 上被破坏得令人震惊……这很奇怪,因为 99.9% 的其他 Flash 应用程序都可以完全运行。

      Boots XP 虚拟机映像

      看起来他们刚刚用一些 JavaScript 更改了 flash 所在的 div 并调整了 applet 的大小以适应。加上另一个 JavaScript 事件挂钩来检测屏幕何时调整大小。

      技术上没有什么聪明的,但他们做到了很好。

      【讨论】:

      • 刚刚在我的 XP 的 Firefox 上安装了 Firebug。我可以确认(本质上)这就是他们正在做的事情。他们必须使用一些额外的divs 样式,但是是的。没什么特别的。
      【解决方案3】:

      实际上,Sam,他们提供了 flash 全屏功能,但必须在文档对象上将 'full_screen_type' 选项设置为 'flash':

      var scribd_doc = scribd.Document.getDoc(doc_id, access_key);

      scribd_doc.addParam('full_screen_type', 'flash');

      默认情况下,“full_screen_type”实际上设置为使用 javascript 呈现,这会产生仅限浏览器窗口的全屏功能。

      给使用 sbribd.js 的人的一些提示:

      • javascript 全屏版本似乎在某些方面出现问题,并且
      • 截至 2009 年 11 月,scribd.js 库中有一些未声明的 javascript 变量将在 Explorer 中中断。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-28
        • 2020-07-06
        • 1970-01-01
        • 1970-01-01
        • 2016-10-13
        相关资源
        最近更新 更多