Я пытаюсь получить текущий URL-адрес браузера. Я уже пробовал использовать External Call, и это не сработало. И с loaderInfo.url я получаю текущий SWF-URL.
Получить текущий URL браузера - ActionScript 3
Ответ 1
Дайте этому ходу:
import flash.external.ExternalInterface;
var url:String = ExternalInterface.call("window.location.href.toString");
if (url) textfield.text = url;
должен сделать трюк.
Ответ 2
Существует несколько способов решить эту проблему, однако все они связаны с использованием 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-код для встраивания, это не сработает.
Если у вас нет контроля над встроенным HTML-флешем, вам необходимо получить флэш-запрос для запроса браузера во время выполнения с использованием класса ExternalInterface; другие люди предложили использовать "window.location.href.toString", однако это может оказаться проблематичным в IE6, я нахожу, что следующие работы надежно работают во всех браузерах.
const browserURL : String = ExternalInterface.call("eval", "window.location.href");
Обратите внимание, что для того, чтобы это сработало, вам необходимо предоставить доступ к JavaScript вашему Flash-ролику, это делается снова с помощью кода вставки HTML и параметр allowScriptAccess
Ответ 3
var url:String = loaderInfo.loaderURL;
похоже, тоже работает.
Ответ 4
Я попробую передать необходимую информацию в качестве flashvar. Не лучшее из ясного решения, которое я знаю, но оно будет работать.
Ответ 5
Я думаю, что его можно использовать с внешним интерфейсом и сделать это с помощью javascript window.location
Ответ 6
Я использую flash в течение длительного времени и никогда не замечал этого. Он предоставляет домен только для обеспечения безопасности. Он также работает через загруженные swf. Не уверен в iframe.
Security.pageDomain