2012-03-14 2 views
1

タブ付きExtJSアプリケーション内でカスタムビデオプレーヤーNPAPIプラグイン(FireBreathを表示)を使用しようとしています。このプラグインは1つのタブに存在し、他のタブは他の非ビデオデータのプレゼンテーションを含みます。タブからタブに切り替えるとExtJSタブ付きビューでNPAPIプラグインを有効にする方法

、プラグインが含まれている要素が破壊され、すべてのプラグインの状態が失われます。 ExtJSタブ付きパネルを構成する方法はありますか?そのため、他のタブ(隠されている)に切り替える際に、その中に含まれるhtmlが変更されませんか?別の方法は、タブに戻るときにプラグインの状態を再設定することですが、これは受け入れがたい遅延(主にビデオキーフレームを待つ間)と関連しています。

おかげで、 O

答えて

0

私は上で推奨されているようにヘルパーアプリケーションを検討していましたが、ウィンドウレスになるようにプラグインを書き直してみました。両方とも他のJSフレームワークのためのより堅牢なソリューションかもしれません。

解決策は、少なくともExtJSの場合、これよりも簡単になりました。デフォルトでは、ExtJSは非表示になっているときはいつでもタブ付きビューのdivに"display: none"を設定します。これはプラグインデストラクタを呼び出します。その巨大なAPIを通して見て、もう少し行った後、ExtJSのはExt.panel.Panel基本クラスの一部としてパラメータhideModeを持っています

「表示」:コンポーネントは、ディスプレイを使用して非表示になります:なしのスタイルを。

'visibility':コンポーネントはvisibility:hiddenスタイルを使用して非表示になります。

'offset':コンポーネントは、ドキュメントの可視領域から絶対的に配置することによって非表示になります。これは、非表示のコンポーネントが測定可能な次元を維持しなければならない場合に便利です。表示を使用して非表示にすると、次元がゼロのComponentになります。 hideMode: 'offsets'へのプラグインは完全に問題を修正含む親パネルの設定「表示」

:へ

デフォルト。

1

あなたはもちろんpreferrableであろうと側にそれを解決することができれば、私は、あなたのExtJSのアプローチについて知りません。

しかし、あなたは、あなたがバックグラウンドで実行されているヘルパーアプリケーションを扱うストリームを移動して再初期化を避けることができないことができるかどうか。プラグインは必要に応じてプラグインを起動し、登録後にストリームデータを受信します。
ヘルパーは、ストリームを強制終了し、タイムアウト後に単独で強制終了するように指示されます(プラグインがクラッシュした場合のセッションリークを避けるため)。

+0

返信ありがとうございます - 私を正しいトラックに設定してください... – jdo

関連する問題