如何查找嵌入Flash文件的页面的URL

时间:2010-07-03 23:19:28

标签: html url flex3 embedded-flashplayer

我正在Flex Builder 3中编写Flash应用程序。 我有个问题。我需要嵌入Flash应用的地方的网址。

  

mx.core.Application.application.url

这给了我原始swf文件的地址,但实际上我需要嵌入了这个SWF的HTML文件的URL。 有办法??? 谢谢! 阿里

2 个答案:

答案 0 :(得分:1)

您有2个选项。 在flex:

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并灵活调用此函数。

答案 1 :(得分:0)

我的评论不可读,所以这里作为答案。

SWFObject中的代码使flash在浏览器管理器方面变得很小。 解决方案在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];
    }

这可以解决您的问题。