scribd 全屏模式非常简洁(例如:http ://www.scribd.com/doc/13161906/Java-Lab-Manual-With-Java-Installation-Guide?classic_ui=1 )。优点(特别是针对 RIA)是它不会(几乎)像 Flash Player 中的“默认”全屏模式那样完全禁用键盘。嵌入时似乎也可以工作。
他们是如何做到的呢?
scribd 全屏模式非常简洁(例如:http ://www.scribd.com/doc/13161906/Java-Lab-Manual-With-Java-Installation-Guide?classic_ui=1 )。优点(特别是针对 RIA)是它不会(几乎)像 Flash Player 中的“默认”全屏模式那样完全禁用键盘。嵌入时似乎也可以工作。
他们是如何做到的呢?
scribd 是如何实现他们的“全屏”模式的?
如果你问我,不是很好。他们的界面在 Ubuntu 上被打破了……这很奇怪,因为 99.9% 的其他 Flash 应用程序完全可以正常工作。
引导 XP 虚拟机映像
好吧,看起来他们刚刚用一些 JavaScript 更改了 flash 所在的 div,并调整了 applet 的大小以适应。加上另一个 JavaScript 事件挂钩来检测屏幕何时调整大小。
技术上没有什么聪明的,但他们做到了很好。
该示例根本没有使用全屏。他们认为“全屏”只是最大化 Flash 窗口以占据整个浏览器区域。浏览器的工具栏和状态栏和 chrome 仍然可见,以及浏览器之外的任何内容。
对于嵌入在 HTML 页面中的 Flash/Flex 小部件来说,这是一个很好的效果,但它与全屏不同。
实施主要在 JavaScript/DOM 方面,仅在 Flash/Flex 中进行。当用户单击“全屏”时,使用 ExternalInterface 调用 JavaScript 函数。然后这个 JS 函数需要重新定位和调整 Flash 元素的大小,使其位于 (0,0) 并占据整个屏幕。如果 HTML 比页面长,那么您还需要隐藏它以使浏览器的滚动条消失,就像 scribd 示例一样。Flex/Flash 应用程序中的另一个按钮提供了一个关闭或相关按钮来反转该过程。
作为一名 Flex 开发人员,我反对为此使用“全屏”一词。全屏是许多 Flash/Flex 应用程序的常用功能,尤其是视频播放器。使用该术语来表示不同的含义会使用户感到困惑。“最大化”比“全屏”更合适。
实际上 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 的任何人,请注意以下几点: