Использование flashvars (требуется перезагрузка страницы / SWF)
Самый простой способ - передать URL-адрес как flashvar, например, через строку запроса SWF-файла в теге object / embed:
MyPlayer.swf?url=/path/to/song.mp3
Конечно, /path/to/song.mp3
может быть напечатано некоторой серверной логикой.
Во Flash вы можете получить доступ к значению этой переменной, используя LoaderInfo
экземпляр корня:
var url : String = root.loaderInfo.parameters['url'];
Если вы хотите указать значение по умолчанию для случая, когда flashvar не указан, что особенно полезно для разработчиков, вы можете сделать это с помощью оператора ||
.
var url : String = root.loaderInfo.parameters['url'] || 'default.mp3';
При этом будет использоваться указанный URL-адрес, если таковой существует, или в противном случае использовать default.mp3.
Использование ExternalInterface & Javascript
Если вы не хотите перезагружать страницу, настройте интерфейс javascript для своего Flash-проигрывателя с помощью ExternalInterface, например, вот так:
if (ExternalInterface.available) {
ExternalInterface.addCallback('playUrl', playUrl);
}
function playUrl(url : String) : void {
// TODO: Add playback code here, e.g. using new Sound(url);
}
Затем из Javascript вы можете сделать это:
var swf = document.getElementById('idOfSwfEmbed');
swf.playUrl('http://example.com/path/to/song.mp3');
Это вызовет метод ActionScript playUrl()
с использованием API javascript, который был установлен с помощью ExternalInterface.addCallback()
.
. Я не знаю .NET, поэтому вам нужно выяснить, как вызывать метод javascript playUrl()
, когда в GridView выбрана песня.