2

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

他们是如何做到的呢?

4

3 回答 3

1

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

如果你问我,不是很好。他们的界面在 Ubuntu 上被打破了……这很奇怪,因为 99.9% 的其他 Flash 应用程序完全可以正常工作。

引导 XP 虚拟机映像

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

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

于 2009-08-14T18:01:23.620 回答
1

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

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

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

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

于 2009-08-14T18:53:36.540 回答
0

实际上 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 中中断。
于 2009-12-11T17:51:46.380 回答