2012-03-14 39 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