![]() |
|
||||||||||
|
|
|
|||||
|
ветеран форума
|
Есть HTML-страница на которой расположены несколько аудио-плееров (одинаковых из одной и той же swf).
Как реализовать остановку проигрывания текущего если кликаем на кнопку "плей" в любом другом? Возможно ли это реализовать без жаваскрипта толко используя LocalConnection? Попробовал использовать класс Гранта Скиннера SWFBridge, но он соединяет только 2 флешки. Возможно ли соединять больше двух флешек с момощью LC? Какая схема будет наиболее правильной в данной ситуации?
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
|
listener
|
Событие "нажали плэй на мне, остальные молчать" генерит флэшка, на которой нажали. Гуд. Оно ушло по лц... кто из соседей его примет? - первый попавшийся, т.е предугадать это нельзя, факт. С некоторой вероятностью, которая увеличивается с числом флэшек-плееров на странице, мессадж будет "перехвачен" флэшкой, которая в данный момент и так молчит.. И дело в том, что любой мессадж принятый из лц-коннекта с именем, общим (единым) для всех флэшек, помечается тут же как прочитанный и для других заинтересованных тераятся навсегда.
Выход: либо отсылать (отражать) мессадж "молчи" дальше: я и так молчу - шлю для остальных, что бы замолчали,что довольно зыбко, на мой взгляд, либо делать "флэшку-хост" или " сервер", если угодно, которая эти мессаджи принимает и рассылает по своей логике (шлет мессадж по индивидуальным именам лц-коннектов флэшек). Вроде бы у Потапенко (John) было что-то навроде того.. Последний раз редактировалось alexcon314; 20.02.2009 в 22:41. |
|
|||||
|
ветеран форума
|
Спасибо.
Я так и не понял LC соединяет только две флешки? Предполагаю вариант что все же не нужно рассылать события всем остальным плеерам, если нажали на "плей" нового, то просто останавливать предыдущий, который ждет соединения, выполняем в нем метод ресета плеера и отключаем его. Дальше ждем следующего нажатия на другом плеере и повторяем все заново. Так получится? Я просто не до конца понимаю принцип работы LC, поэтому сложно сориентироваться как именно действовать. Сейчас попробую реализовать свои мысли )
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
На самом деле, проблем в твоём случае нет. Да и вещатель по LC сделать можно, я делал.
Итак, в твоём случае: при клике на play ты записываешь уникальный идентификатор в SharedObject и подписываешь текущую флэшку на канал LC с этим именем. При клике на следующую play (при клике на первую play это тоже происходит, но не срабатывает), она берет из SO имя канала и вызывает метод остановки. Первая слышит и останавливается. Текущая запускается. Всё.
__________________
http://realaxy.com |
|
|||||
|
ветеран форума
|
Спасибо. Про SO думал, но пошел по другому пути.
Я сделал с помощью SWFBridge. Работает, но не полностью так как должно. Проблема в том что у всех флешек есть одинаковые методы (полностью) и при коннекте происходит двухсторонний вызов, т.е вызываются в итоге эти методы у обоих флешек. И пока ничего не могу с этим сделать. to Iv: Если Вам не внапряг, был бы очень благодарен за кусочек демонстрационного кода.
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
Дык!
И после шести пива не проблема. Ща.
__________________
http://realaxy.com |
|
|||||
|
ветеран форума
|
Iv, сенкс, после шести пива лучше не напрягайся.
Я все уже сделал. Выкинул SFBridge, забыл про SO и сделал через прокси-флешку. В каждом плеере создаю уникальный ID и открываю два LC - один для пересылки ID плеера в прокси-флешу, второй для приема команды остановки от прокси флешки По нажатию на кнопку "плей" передаю ID по вспомогательному каналу (открытому для ID) прокси-флешке. Дальше вызываю метод ресета у плеера с предыдущим переданным ID по другому каналу. Все оказалось намного проще, а убил кучу времени, но зато много полезного узнал. Всем спасибо.
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
Кошмар.
Ну, если тебя это устраивает, то фигли. Тем более, что я тут впрягся в изгиб палки в соседней теме, так что это.
__________________
http://realaxy.com |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|