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

时间:2009-08-14 17:51:48

标签: flex flash fullscreen scribd

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

他们是怎么做到的?

3 个答案:

答案 0 :(得分:1)

  

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

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

启动XP虚拟盒图像

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

技术上没什么聪明,但是他们做得很好。

答案 1 :(得分:1)

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

这对嵌入HTML页面的Flash / Flex小部件有很好的效果,但它与全屏不同。

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

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

答案 2 :(得分: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变量会在资源管理器中中断。