Вопрос

Я пытаюсь управлять экземпляром Проигрыватель JW FLV проигрыватель, использующий jquery.

Что я хочу сделать, так это иметь ряд ссылок, которые при нажатии загружают 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 элемента, а затем привязать к нему событие click, которое запускает соответствующую функцию.Увы, это выше моих крайне скудных сил.

Пока что у меня есть:

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

Что явно не работает.Кто-нибудь хочет помочь идиоту / n00b?

Я должен сказать, что на самом деле я хочу сделать это Учиться вместо того, чтобы просто попросить кого-то другого сделать это, так что, если вы сможете немного все объяснить, это было бы еще более потрясающе.

Это было полезно?

Решение

То, что вы делаете, мне кажется правильным, хотя я не уверен, что переменная " player " определяется там; это зависит от контекста.

Что вы можете сделать, это что-то вроде

$('a.media').click(function () {
  var player = $("#player-id");
  if(player.length == 1){
    player = player[0];
    var playlist = $(this).attr("rel");
    player.sendEvent('LOAD', playlist);
  }
});

Другие советы

player.sendEvent('LOAD', playlist
}
);

Проверьте вложенность в скобках.

В противном случае должно работать. Но 'rel' не очень хорошее место для размещения URL, так как он должен содержать только известные токены . Почему бы не положить его в «href», где вы ожидаете? Вам просто нужно «вернуть false» или «protectDefault», чтобы прекратить переход по ссылке после перехода.

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

Э-э, здесь не лишний гид? Почему бы просто не "player = obj"?

У меня здесь такая же проблема, как и у вас.И я понимаю, что первым делом вы вызываете create player, используя

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

Я не помню точно, но это похоже на приведенный выше код, после этого вы можете использовать var player = window.document[thePlayer.id] в функции playerReady(thePlayer){} в jQuery например

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

player.SendEvent("ВОСПРОИЗВЕДЕНИЕ");..и т.д.Надеюсь, мы сможем поговорить об этом и улучшить jQuery

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top