Существует несколько способов решения этой проблемы, однако все они связаны с использованием JavaScript для непосредственного запроса браузера.
Мой предпочтительный способ решения этой проблемы заключается в предоставлении URL-адреса через свойство flashVar непосредственно из кода для встраивания (лично я бы порекомендовал использовать SWFObject , чтобы сделать это проще); не забывайте, что вам нужно будет URL кодировать его, чтобы избежать проблем с разметкой.
var flashvars = {
browserURL: escape(location.href)
};
swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0", "expressInstall.swf", flashvars);
Теперь вы сможете получить доступ к URL-адресу браузера через объект loaderInfo:
trace(stage.loaderInfo.parameters["browserURL"]);
обратите внимание, что это будет работать, только если у вас есть контроль над сгенерированным HTML для вашего SWF-файла - если пользователи собираются захватить SWF и писать собственный HTML-код для вставки, это не сработает.
Если у вас нет контроля над Flash-встраиванием HTML, вам понадобится Flash для запроса браузера во время выполнения с использованием класса ExternalInterface; другие люди предложили использовать «window.location.href.toString», однако это может оказаться проблематичным в IE6, я считаю, что следующие работы надежно работают во всех браузерах
const browserURL : String = ExternalInterface.call("eval", "window.location.href");
Обратите внимание, что для того, чтобы это работало, вам нужно предоставить JavaScript-доступ к вашему Flash-фильму, это опять же делается с помощью кода встраивания HTML и параметра allowScriptAccess