Как найти URL страницы, где встроен файл Flash
Я пишу приложение Flash в Flex Builder 3. У меня проблема. Мне нужен URL места, где было встроено приложение Flash.
mx.core.Application.application.url
Это дает мне адрес исходного SWF-файла, но мне действительно нужен URL-адрес HTML-файла, в который был встроен этот SWF-файл. есть ли способ??? Спасибо! Али
2 ответа
У вас есть 2 варианта. во флексе:
private function initApp():void {
browserManager = BrowserManager.getInstance();
browserManager.addEventListener(BrowserChangeEvent.URL_CHANGE, showURLDetails);
browserManager.init("", "Welcome!");
}
и слушатель
private function showURLDetails(e:BrowserChangeEvent):void {
var url:String = browserManager.url;
baseURL = browserManager.base;
fragment = browserManager.fragment;
previousURL = e.lastURL;
fullURL = mx.utils.URLUtil.getFullURL(url, url);
port = mx.utils.URLUtil.getPort(url);
protocol = mx.utils.URLUtil.getProtocol(url);
serverName = mx.utils.URLUtil.getServerName(url);
isSecure = mx.utils.URLUtil.isHttpsURL(url);
}
Этот код работает как на сервере, так и на локальном хосте.
если это не работает для вас (сначала загрузите ошибку здесь), но вы также можете создать функцию JS, которая будет возвращать URL-адрес и вызывать эту функцию с помощью flex.
Мой комментарий не читается, так что вот он как ответ.
Код внутри SWFObject делает флеш-игру немного странной, когда дело доходит до менеджера браузера. решение находится внутри history.js (сначала присоедините его к HTML, если вы этого не сделали)
Затем закомментируйте эти строки кода.
if (players.length == 0 || players[0].object == null) {
var tmp = document.getElementsByTagName(‘embed’);
players = tmp;
}
И этот
if (player == null || player.object == null) {
player = document.getElementsByTagName(‘embed’)[0];
}
Это должно решить вашу проблему.