Просмотр полной версии : Как заблокировать swf на html странице?
WireFlash
07.03.2006, 19:16
Здравствуйте.
У меня возникла следующая проблема:
Я создаю мини плеер для ознакомительного прослушивания музыки на сайте. Конструкция легка - плеер в виде маленькой кнопки "play |>" подгружат соотетствующую музыку из базы и проигрывает её. Всё работает. Но проблема в том, что на одной странице могут быть по 10-20 песен, и каждая из песен иммеет рядом этот мини плеер для ознакомления. Итак, пользователь может нажать на все эти плееры и тогда начинается неприятный хор :) Мне нужно заблокировать остальные плееры, в тот момент, когда проигрывается один из них до тех пор пока музыка не закончится или пользователь не нажмет "стоп" на плеере.
Можно ли заблокировать swf file на html странице с помощью JavaScript? Если да, то каким образом?
чтобы показаться умным скажу такую фразу "прочитай хелп про LocalConnection".
Если бы я такое делал то наверное с помощью него, правда я ниразу его не использовал нигде %(
ну или как выход из флеша устанавливай какуюто переменную в яваскрипте если песня играет а флешами смотрел установлена то нефига не делаем, отдыхаем, если нет то мы ее устанавливаем и ничинаем играть
скорее SharedObject и LocalConnection.
c одним LocalConnection запаришься.
причем ситуация такова, что и логику нужно делать несколько иной:
если юзер кликает на другую песню, то тормозим предыдущую и запускаем текущую.
в коде это будет выглядеть примерно так:
function onRelease():Void {
var current_so:SharedObject = SharedObject.getLocal("_song_list", "/");
var id:String = current_so.data.song_id;
var out_lc:LocalConnection = new LocalConnection();
out_lc.send(id, "onStop");
current_so.data.song_id = "sond"+new Date().getTime();
current_so.flush();
this.listener_lc = new LocalConnection();
this.listener_lc.connect(current_so.data.song_id);
this.listener_lc.onStop = function() {
_root.current_song.stop();
};
_root.current_song = new Sound(_root);
/// ...............................
}
PS: я не проверял работоспособность кода,
это просто примерный принцип действия.
и ачипятки типа и ачипятки "sond" вызваны празднованием Межнароднага женскага дня. сорри.
WireFlash
07.03.2006, 23:55
В самом начале этот проект я начал с LocalConection. Но я уже слишком замучался с ним. Не пашет он в моем случае. Даже пытался использовать System.capabilities.localFileReadDisable = true; чтобы запретить чтение любых подгружаемых файлов во время проигрывания музыки. Опять не то.
Просто проблема в том, что это не несколько плееров, а всего лишь один. LocalConnection работает тут неохотно.
что на одной странице могут быть по 10-20 песен, и каждая из песен иммеет рядом этот мини плеер для ознакомления.Просто проблема в том, что это не несколько плееров, а всего лишь один.Так сколько все-таки плееров?
Можно и JavaScript-ом обойтись, не вопрос, но на самом деле подход, указанный Ивом, гораздо меньше смахивает на минное поле.
JavaScript еще надо уметь кросс-браузерно писать.
WireFlash
08.03.2006, 18:39
Так сколько все-таки плееров?
Количество песен будет зависеть от базы - сколько захотят, столько и поставят.
И для каждой песни свой плеер, который на самом деле один, но клонируется столько раз сколько песен, и играет ту песню для которой он клонируется? Если так, тогда код что приведен выше должен работать. Там перед началом проигрывания песни с помощью SharedObject зписывается на локальный комп строка song_id + Date() и врубается прослушка LocalConnection канала с тем же именем. Новая попытка запустить песню из плеера-клона вначале считывает последнюю запись song_id + Date() и по этому каналу посылает команду стоп. В коде дан примерный вариант, и его можно подогнать под конкретную реализацию , а System.capabilities тут использовать имхо никчему. LocalConnection прекрасно работает в предлах одного компа, только прослушивать данный канал может только один фильм, а отправлять данные по этому каналу могут сразу несколько фильмов. А SharedObject может не работать только если пользователь запретил запись данных на свой диск, но эту ситуацию можно обработать и выдать пользователю предложение разрешить запись для корректной работы сайта. :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.