2012-03-14 38 views
1

我試圖用一個定義視頻播放器插件NPAPI(查看FireBreath)的標籤ExtJS的應用程序中。該插件位於一個標籤中,其他插件包含其他非視頻數據的演示。如何保持NPAPI插件,ExtJS的活標籤視圖

當從選項卡切換到標籤中,包含該插件的元件被破壞,並且所有插件狀態丟失。有沒有什麼辦法可以配置ExtJS標籤面板,以便在切換到另一個選項卡(只是隱藏)時,其中包含的html不會被更改?另一種方法是在返回到選項卡時重新填充插件狀態,但這會與不可接受的延遲(主要是在等待視頻關鍵幀時)相關聯。

感謝, Ø

回答

0

我正要考慮輔助應用程序如上文所建議,或可考慮重新編寫插件是沒有窗戶的。對於其他JS框架來說,這兩者都可能是更健壯的解決方案

幸運的是,解決方案最終被比這更簡單的,至少對於ExtJS的。默認情況下,ExtJS在標籤視圖的div上設置"display: none",只要它未被顯示,它調用插件析構函數。做多了幾分期待通過其巨大的API後,ExtJS的有一個參數hideMode爲Ext.panel.Panel基類的一部分:

「顯示」:沒有風格:組件將使用顯示被隱藏。

'visibility':組件將使用visibility:hidden style隱藏。

「補償」:該組件將絕對定位出來的文檔的可見區域的被隱藏。當隱藏的組件必須保持可測量的尺寸時,這非常有用。使用顯示結果隱藏零維的Component。

默認爲:「顯示」

設置包含插件hideMode: 'offsets'完全解決了這一問題的父面板。

1

我不知道你的ExtJS的方法,如果你能解決它的那一面,當然,這將是preferrable。

但是,如果你不能,你可以通過移動流處理到在後臺運行幫助應用程序避免重新初始化。該插件將根據需要啓動它,並在註冊後從其接收流數據。
該助手會被告知何時殺死一個流,並可能會在一段時間後自行殺死它(以避免在崩潰插件等情況下會話泄漏)。

+0

感謝您的回覆 - 讓我在正確的軌道下面... – jdo 2012-03-19 14:17:55