![]() |
|
||||||||||
|
|||||
|
[+4 03.10.07]
Регистрация: Oct 2007
Сообщений: 16
|
Написал простой скрипт с использованием netStream, он воспроизводит видео во флешке. При наведении на флешку видео начинает воспроизводится, при уводе мышки - ставится на паузу. Также на паузу можно поставить видео не уходя с флешки, нажав на соответствующую кнопку. Если видео стоит на паузе и увести курсор с флешки, а потом снова навести на неё, то видео опять начнёт воспроизводится.
Проблема как всегда появляется в ИЕ: видео не начинает воспроизводится, если до уводы курсора с флешки оно ставилось на паузу. Все трейсы показывают что копанда на воспроизведение подаётся, но видое "замирает" и не проигрывается. Тестовая страничка: http://files.adriver.ru/share/adobe_netstream_ie_bug/ Пробовал переписать на AS3 - результат тот же: в ИЕ баг - в остальных браузерах нормально. Версия плагина под ИЕ последняя, и на 10.0.22 было то же самое. Кто-нибудь сталкивался? Как обойти данную проблему? |
|
|||||
|
[+4 03.10.07]
Регистрация: Oct 2007
Сообщений: 16
|
Вот на AS2:
if(_root.ar_comppath == undefined){ _root.ar_comppath = ''; } var conn = new NetConnection(); conn.connect(null); var stream = new NetStream(conn); my_vid.attachVideo(stream); stream.onMetaData = function(info){ _root.isPlaing = true; _root.tg = 'click'; } stream.play(_root.ar_comppath + '0.flv'); function _play(st, tg){ clearInterval(_root.timer); if (st) { stream.pause(false); _txt.text = 'play: ok, ' + tg + ', stream = ' + stream.time; _root.isPlaing = true; _root.tg = tg; return; } _root.timer = setTimeout(function(){ if (_root.tg != tg) return; if (tg == 'pause') return; stream.pause(false); _txt.text = 'play: ok, ' + tg + ', stream = ' + stream.time; _root.isPlaing = true; _root.tg = tg; }, 10); } function _pause(tg){ clearInterval(_root.timer); _root.timer = setTimeout(function(){ stream.pause(true); _txt.text = 'pause: ok, ' + tg + ', stream = ' + stream.time; _root.isPlaing = false; _root.tg = tg; }, 10); } on(release){ if (_root.isPlaing) _pause('pause'); else _play(1, 'pause'); } on(rollOver){ _play(0, 'pause'); } on(rollOut){ _pause('pause'); } on(release){ getURL(_root.link1, _root.target); _pause('click'); } on(rollOver){ _play(0, 'click'); } on(rollOut){ _pause('click'); } import flash.events.*; var ar_comppath = this.loaderInfo.parameters['ar_comppath'] || '', isPlaing = false, tg, timer; var conn = new NetConnection(); conn.connect(null); var stream = new NetStream(conn); my_vid.attachNetStream(stream); stream.addEventListener(NetStatusEvent.NET_STATUS, errorHandler); stream.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, errorHandler); stream.client = { onMetaData: function(info){ isPlaing = true; tg = 'click'; } } function errorHandler(e){ _txt.text = e.info.code; } stream.play(ar_comppath + '0.flv'); function _play(st, t){ clearInterval(timer); if (st) { stream.resume(); _txt.text = 'resume from pause'; isPlaing = true; tg = t; return; } timer = setTimeout(function(){ if (tg != t) return; if (t == 'pause') return; stream.resume(); _txt.text = 'resume from hide'; isPlaing = true; tg = t; }, 10); } function _pause(t){ clearInterval(timer); timer = setTimeout(function(){ stream.pause(); isPlaing = false; _txt.text = 'pause'; tg = t; }, 10); } /* buttons */ function _clickRelease(e){ _pause('click'); try { var ie:String = ExternalInterface.call("function(){return !!window.ActiveXObject}"); var url:String = LoaderInfo(this.root.loaderInfo).parameters['link1']; if (ie) ExternalInterface.call('window.open',url); else navigateToURL(new URLRequest(url), '_blank'); }catch (e:Error){} } function _clickOver(e){ _play(0, 'click'); } function _clickOut(e){ _pause('click'); } _click.addEventListener(MouseEvent.CLICK, _clickRelease); _click.addEventListener(MouseEvent.MOUSE_OVER, _clickOver); _click.addEventListener(MouseEvent.MOUSE_OUT, _clickOut); function _pauseRelease(e){ if (isPlaing) _pause('pause'); else _play(1, 'pause'); } function _pauseOver(e){ _play(0, 'pause'); } function _pauseOut(e){ _pause('pause'); } _pB.addEventListener(MouseEvent.CLICK, _pauseRelease); _pB.addEventListener(MouseEvent.MOUSE_OVER, _pauseOver); _pB.addEventListener(MouseEvent.MOUSE_OUT, _pauseOut); Написал багрепорт в Адоб. Добавлено через 24 часа 51 минуту Скажите мне кто-нибудь что это не баг флеша и что это можно как-то обойти. Может кто костыль знает? |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|