2

jquery を使用してJW FLV プレーヤープレーヤーのインスタンスを制御しようとしています。

私がやりたいことは、クリックすると XML プレイリストをプレーヤーにロードする一連のリンクを作成することです。

ここのチュートリアルに従うことで、基本的に機能面で必要に応じて機能するようになりましたが、現時点ではアンカーが次のようになっているため、罪のように醜いことがわかります。

<a class="media" href="#"
onclick="player.sendEvent('STOP');
player.sendEvent('LOAD',
'path/to/playlist.xml');
return false;">load playlist</a>

これはプレーヤーへの参照を取得します

var player = null;
function playerReady(obj)
{
  player = gid(obj.id);
};

function gid(name)
{
  return document.getElementById(name);
};

私ができるようにしたいのは、アンカーを次のようにすることです。

<a class="media" href="#" rel="path/to/playlist.xml">load playlist</a>

次に、jquery を使用して class="media" でアンカーを見つけ、要素の rel 属性の値を読み取り、適切な機能をトリガーするクリック イベントをそれにバインドします。ああ、これは私の非常に貧弱な力を超えています。

これまでのところ、私は持っています:

$('a.media').click(function()
  {
    playlist = $(this).attr("rel");
    player.sendEvent('LOAD', playlist
  }
);

これは明らかに機能しません。ばか/n00bを助けたい人はいますか?

私が本当にやりたいことは、他の誰かにやらせるのではなく、学ぶことだと言わなければなりません。

4

3 に答える 3

4

変数「プレーヤー」がそこで定義されているかどうかはわかりませんが、あなたがしていることは私には正しいようです。それは文脈に依存します。

あなたができることは次のようなものです

$('a.media').click(function () {
  var player = $("#player-id");
  if(player.length == 1){
    player = player[0];
    var playlist = $(this).attr("rel");
    player.sendEvent('LOAD', playlist);
  }
});
于 2009-03-13T19:18:25.060 に答える
0
player.sendEvent('LOAD', playlist
}
);

ブラケットのネストを確認してください。

それ以外の場合は、動作するはずです。ただし、「rel」は既知のトークンのみを含むことになっているため、URLを配置するのに適した場所ではありません。あなたが期待する「href」に入れてみませんか?なめた後にリンクがたどられるのを止めるには、「falseを返す」または「preventDefault」を実行する必要があります。

function playerReady(obj)
{
    player = gid(obj.id);
};
function gid(name)
{
    return document.getElementById(name);
};

えーと、ここでは完全に不要ではないですか?なぜ'player= obj'だけではないのですか?

于 2009-03-13T19:22:49.573 に答える
0

私はここであなたと同じ問題を抱えています。そして、最初に create player を使用して呼び出していることに気付きました

var newplayer = SWFobject(width,height,playerid,version,background-color);
newplayer.addVarible(...);
newplayer.write(htmltaghold place for this player);

正確には覚えていませんが、上記のコードのようなものです。その後、jQuery の関数 playerReady(thePlayer){} で var player = window.document[thePlayer.id] を使用できます

jQuery("div#id").click(function(){
   your code
   player.sendEvent("NEXT");
});

player.sendEvent("PLAY"); ..等。それについて話し合ってjQueryを改善できることを願っています

于 2010-07-15T02:26:49.123 に答える