0

現在、他のインターネット ラジオ局でより簡単に実行できるように、Web プレーヤーをリファクタリング中です。これらのプレーヤー間のセットアップの多くは非常に似ていますが、一部のプレーヤーでは異なる UI プラグインや他のプラグインが必要になります。

現在、webplayer では、init() で次のようなことを行っています。

_this.ui = 新しい UI();

_this.ui.playlist = 新しいプレイリスト();

_this.ui.channelDropdown = new ChannelDropdown();

_this.ui.timecode = ne Timecode();

などなど

これは問題なく機能しますが、実行時にこれらのオブジェクトを要求することを妨げます。私がやりたいのは、ステーションのニーズに基づいてそれらを追加できるようにすることです。基本的に私の質問は、ここに何らかの「addPlugin()」機能を追加する必要がありますか? そして、それを行う場合、そのプラグインを使用する前に、そのプラグインが存在するかどうかを WebPlayer オブジェクトから常に確認する必要がありますか? お気に入り...

if (_hasPlugin('playlist')) this.plugins.playlist.add(track);

これのいくつかが明確ではないかもしれないことをお詫びします...本当にこれらすべてに頭を悩ませようとしています. 近づいた気がしますが、まだ立ち往生しています。これをどのように進めるべきかについてのアドバイスは大歓迎です。

前もって感謝します、

リー

4

2 に答える 2

0

プラグインのJavaScriptクラスを定義し、それらをWebプレーヤーへの依存関係としてロードし、RequireJS AMDを使用して、必要に応じて実行時にインスタンス化できます。

//in your webplayer.js
define(['./ui','./playlist'],function(ui, playlist){
     var webPlayer = function(stationID){
     //initializing work
    }
    return webPlayer; 
});

実行時に、必要に応じてwebplayer.jsファイルをロードし、Webプレーヤーをインスタンス化します。

JavaScript製品開発のリファレンスアーキテクチャであるBoilerplateJSをご覧ください。イベント処理、自己完結型コンポーネントの作成、コンポーネント間の相互作用の処理、UIコンポーネントの作成/表示/非表示のタイミングを決定するなどの懸念事項は、開発を迅速に開始するために処理されます。

于 2012-09-06T06:48:32.953 に答える
0

他の人が作業できるようにしたいアプリケーション内の特定の機能を公開する必要があります。IE: UI やプレーヤーなどの主要なコンポーネントでパブリック get{} set{} アクセサーを作成します。公開する機能が多ければ多いほど、機能の重要な部分を変更できるプラグインが増えます。

UI.header があり、header には、ヘッダーが UI を表示する方法を定義するプロパティが含まれているとします。したがって、header.backgroundImage を公開文字列として公開し、header.Text を公開文字列として公開し、header.height を公開 int として公開します。プラグインを設計している誰かがヘッダー値を変更し、見た目を変えて、自分が望むものを言うことができるようになりました。

公開する内容に基づいて、プレイヤーがプレイヤーをどれだけ変更できるようにするかがすべてです。

于 2010-05-07T13:52:20.923 に答える