Воспроизвести swf-фильм до конца в слайд-шоу цикла jquery

Я работаю над слайд-шоу на основе плагина цикла jquery (здесь: http://jquery.malsup.com/cycle /). Слайд-шоу перемещается между разными элементами div, где я могу размещать различный контент, например изображения и текст. Однако я также хотел бы добавить swf-фильмы в сценарий, который работает только на базовом обзоре. Видео начинает воспроизводиться, когда слайд становится видимым, но останавливается до его завершения и переходит к следующему слайду.

Конечно, это происходит, поскольку у меня есть таймер, показывающий, как долго каждый слайд должен быть виден. Что мне интересно, так это то, есть ли способ со сценарием, чтобы он динамически получал продолжительность видео и не менял слайд до тех пор, пока видео не было завершено, и просто делал это для swf-видео.

Другой контент должен удерживать таймер.

С наилучшими пожеланиями Папараппа Полезно Бесполезно


person Paparappa    schedule 08.11.2010    source источник
comment
Привет папараппа, у меня такая же проблема. Вы получили какое-либо решение. если есть выложи пожалуйста   -  person Gowri    schedule 22.02.2011


Ответы (1)


Это не должно быть проблемой.

Сначала используйте ExternalInterface для связи между Flash и JQuery. Ознакомьтесь с этим вопросом Запустите jquery с помощью flash или напрямую http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html< /а>.

Тогда у вас есть два варианта:

Получите длину видеопотока из объекта MetaData:

1) установите NetStream clinet на это

mainNS = new NetStream(mainNC);
mainNS.client = this;

2) иметь общедоступный метод onMetaData в этом классе

public function onMetaData(infoObject : Object) : void {
     if (infoObject.hasOwnProperty('duration')) {
          _duration = Number(infoObject['duration']);
     }          
}

Или прослушайте видео в конце:

1)

mainNS = new NetStream(mainNC);
mainNS.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);

2)

private function netStatusHandler(event : NetStatusEvent) : void {
    if (event.info['code'] == "NetStream.Play.Stop") {
        trace('video end');         
    }
}
person daniel.sedlacek    schedule 08.11.2010
comment
Хорошо. Во-первых, я должен извиниться за то, что я не больше эксперт по javascript, чем должен быть. Несмотря на то, что вы были очень полезны, показывая мне, что использовать, я не знаю, как это использовать. Если у меня есть файл swf, который составляет 10 секунд. Как заставить цикл jquery распознавать это, а не просто переходить к следующему с помощью этого кода: $(document).ready(function() { $('.slideshow').cycle({ fx: 'fade', speed: 500 , время ожидания: 5000, задержка: -0, пауза: 1 }); }); - person Paparappa; 09.11.2010
comment
лол, я тоже не JS-разработчик :). То, что вы называете Flash-видео - это анимация или видео? Всегда одинаковая продолжительность или динамичная? - person daniel.sedlacek; 09.11.2010
comment
Боюсь, это динамично, лол. Это будут разные видео для разных страниц так сказать - person Paparappa; 09.11.2010
comment
здравствуйте у меня такая же беда.. есть какие-нибудь решения для этого - person Gowri; 11.02.2011
comment
ребята, что именно вы хотите и почему моего решения недостаточно? - person daniel.sedlacek; 11.02.2011