Anythingslider и Youtube API, передавая переменную - PullRequest
0 голосов
/ 26 июля 2011

Я пытаюсь связать API YouTube с jQuery Anythingslider, и я достигаю этого.

Теперь мне нужно передать переменную " newState ", определенную из anythingslider (внутри "onPlayerStateChange" из Youtube API) в его обратный вызов. Это код, сначала переменная, а затем anythingslider:

function onPlayerStateChange(newState) {
....
// other stuff not important 
....
}

jQuery.(document).ready(function() {

  jQuery('#myslider').anythingSlider({
    easing : "swing",
    width  : 500,
    ............
    ............
    onSlideComplete : function(){
                      jQuery('.button').click(function(){
                      if (newState == '3') {....}
                      });
                      }
    });
});

Этот код возвращает меня: "newState" не определено .. очевидно ... большое спасибо

Ответы [ 2 ]

0 голосов
/ 30 июля 2011

Я не уверен, что вы пытаетесь сделать, но последняя версия AnythingSlider имеет расширение видео , которое автоматически продолжит воспроизведение видео при появлении панели и остановит видео, когдаэто выходит из поля зрения.В настоящее время это расширение поддерживает HTMl5, YouTube (embed & iframe) и Vimeo (embed & iframe) с дополнительным кодом на видео-странице для управления JW Player и Flow Player (без расширения).

Если вы используете это расширение и вам нужно получить статус видео, оно доступно с помощью этого внешнего метода:

var slider = $('#slider').data('AnythingSlider'),
    index = slider.$currentPage.find('[id^=asvideo]')[0].id.replace(/asvideo/,''),
    status = slider.video.list[index].status;

Примечание : значение состояния является числомдля видео на YouTube и строка («play», «pause» и «finish») для видео Vimeo.Доступ к статусу видео HTML5 возможен напрямую и не имеет переменной состояния.

0 голосов
/ 26 июля 2011

Основано на ваших комментариях:

В onPlayerStateChange у вас есть аргумент с именем newState, поэтому я предполагаю, что вы вызываете эту функцию, выполняя что-то вроде

result = OnPlayerStateChange(1);

Таким образом, newState всегда определяется локально для этой функции.

Если вы хотите получить доступ к тому же значению в других функциях, вам нужно определить эту переменную вне всех функций в глобальном пространстве, поэтому

var newSate = 1 

(возможно, вверху источника js, чтобы избежать путаницы)

Надеюсь, это поможет

...