scribd全屏模式非常整潔(例如:http://www.scribd.com/doc/13161906/Java-Lab-Manual-With-Java-Installation-Guide?classic_ui=1)。 (對於RIA來說)的好處是,它不會(幾乎)完全禁用鍵盤,而是像Flash Player中的'默認'全屏模式那樣。嵌入時似乎也工作。scribd是如何實現其「全屏」模式的?
他們是怎麼做到的?
scribd全屏模式非常整潔(例如:http://www.scribd.com/doc/13161906/Java-Lab-Manual-With-Java-Installation-Guide?classic_ui=1)。 (對於RIA來說)的好處是,它不會(幾乎)完全禁用鍵盤,而是像Flash Player中的'默認'全屏模式那樣。嵌入時似乎也工作。scribd是如何實現其「全屏」模式的?
他們是怎麼做到的?
該示例根本不使用全屏。他們認爲「全屏」只是最大化閃光燈窗口占據整個瀏覽器區域。瀏覽器的工具欄,狀態欄和chrome仍然可見,以及瀏覽器之外的任何東西。
它是嵌入在HTML頁面中一個Flash/Flex的小部件一個很好的效果,但它是不一樣的全屏顯示。
的實現主要是對的JavaScript/DOM側,只是最低限度內的Flash/Flex的。當用戶點擊「全屏」時,使用ExternalInterface調用JavaScript函數。這個JS函數需要重新定位並調整Flash元素的大小,使其位於(0,0)並佔據整個屏幕。如果HTML比一頁長,那麼你也需要隱藏它,以使瀏覽器的滾動條消失,就像scribd例子那樣。 Flex/Flash應用程序中的另一個按鈕提供關閉或相關按鈕來反轉該過程。
作爲一個Flex開發者,我反對使用術語「全屏」這一點。全屏是許多Flash/Flex應用程序的常見功能,特別是視頻播放器。用戶使用該術語表示不同的東西令人困惑。 「最大化」比「全屏」更合適。
scribd是如何實現他們的「全屏」模式?
不太好,如果你問我。他們的界面在Ubuntu上非常令人震驚......這很奇怪,因爲99.9%的其他Flash應用程序完全可以工作。
靴XP的VirtualBox圖像
那麼它看起來像他們剛剛改變閃光坐落在與一些JavaScript div和調整大小的小程序,以適應。加上另一個JavaScript事件掛鉤來檢測屏幕的大小。
沒有技術上的巧妙,但他們做得很好。
其實山姆,他們提出了一個閃光全屏可用,但「full_screen_type」選項設置爲文檔對象的「快閃」:
VAR scribd_doc = scribd.Document.getDoc(DOC_ID,access_key) ;
scribd_doc.addParam( 'full_screen_type', '閃光');
默認情況下,'full_screen_type'實際上設置爲使用javascript進行渲染,這會導致僅用於瀏覽器窗口的全屏功能。
一種利用人sbribd.js夫婦的頭起坐:
剛剛在XP的Firefox上安裝了Firebug。我可以證實(實質上)那就是他們在做什麼。他們必須玩一些額外的'div's'風格,但是。沒什麼特別的。 – Oli 2009-08-14 18:04:07