![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 12
|
Искал по форуму но толком ничего не нашел...
На странице несколько flash плееров (один и тот же swf), играющих разные треки. Как сделать так, чтобы при нажатии на play одного из них остальные останавливались? Можно как то через js, но я его плохо знаю... |
|
|||||
|
Модрон-ветеринар
|
Используйте класс ExternalInterface. Знания JS там нужно совсем чуть-чуть, примеры EI + JS есть в хелпе. Я так вообще почти не знаю JS, примеров из хелпа оказалось вполне достаточно.
Итак, разбейте задачу: 1) Сначала научитесь просто останавливать воспроизведение плеера со HTML-страницы: пусть у вас JS функция, повешенная на HTML-кнопку, будет останавливать воспроизведение с помощью флешкиного кода. В коде для этого будет использоваться метод ExternalInterface.addCallback. 2) Когда этого удастся добиться во второй флешке, настроите другой метод, ExternalInterface.call, который будет "дергать" эту функцию JS из другой флешки. 3) Ну и когда и с этим справитесь, нужно использовать оба метода в каждом из плееров. Задача не так сложна, как вы думаете. JS нужен лишь только для нахождения объекта с флешкой на странице и сообщения флешке, какую ее внутреннюю функцию нужно вызвать. Последний раз редактировалось mooncar; 29.12.2009 в 12:51. |
|
|||||
|
Регистрация: Nov 2008
Адрес: Атланта
Сообщений: 1,271
|
__________________
Пока я жив, Вы горем обеспечены |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 12
|
но разве так не остановятся сразу оба плеера?
|
|
|||||
|
Модрон-ветеринар
|
При вызове JS-функции передавайте параметром те, которые требуются остановить.
Или вызывайте функцию циклом и передавайте в цикле каждый раз параметр того, которого требутеся остановить (т.е. цикл вызова по всем номерам, кроме своего). Класс дает возможность передачи параметров, это очень здорово. |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 12
|
спасибо!
|
|
|||||
|
Регистрация: Jul 2009
Сообщений: 12
|
никак не могу передать параметр нужной флешке...
как только не пытался... На странице 5 флешек, естественно у каждой свой id. Уже весь мозг сломал... Как передать нужной флешке параметры? Это не работает: |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Попробуйте запускать страницу не локально.
У вас addCallback() прописан? Кстати, есть другие варанты, как остановить плееры. Например, при загрузке, плеер пробует коннектиться к localConnection_1. Если такого нет, то сам создает localConnection_1 и присваивает себе connection_id=1. Второй плеер точно так же действует, но, если localConnection_1 уже занято, создает localConnection_2 и устанавливает себе connection_id=2 и так далее. Когда нужно остановить все плееры, то в цикле от одного до ста (например) пробегаем соединения, запуская стоп-функцию и пропуская одно соединение, под номером, равным своему connection_id. Решение весьма грубое и не универсальное, имеет задержку в выполнении (было бы интересно сравнить с решением через ExternalInterface + JavaScript) и ограничение по количеству одновременно запущенных плееров. Если ExternalInterface.available = false, то можно пробовать такой метод. mooncar, что скажете?
__________________
hauts.ru Последний раз редактировалось Hauts; 15.01.2010 в 05:44. |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 3
|
GSA85, на самом деле проблема в том, что когда вы вызываете из JS функцию AS, функция AS еще не создалась. Я пока что нашел один выход: вызывать через интервал. В вашем случае четвертую строку заменить на:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|