2010-07-03 83 views
0

我正在Flex Builder 3中編寫Flash應用程序。 我遇到問題。我需要Flash應用嵌入的地方的網址。如何查找嵌入了Flash文件的頁面的URL

mx.core.Application.application.url

這給了我原來的swf文件的地址,但我確實需要給SWF已嵌入在HTML文件的URL。 有沒有辦法? 謝謝! 阿里

+0

好的!我有一個解決方案,但它並沒有真正完成工作! 我想IBrowserManager是關鍵詞! 但IBrowserManager.url返回NULL! helpppp! – 2010-07-04 00:19:54

+0

它只適用於本地主機! 但不在服務器上!請helppppppp !!! – 2010-07-04 00:43:49

回答

1

你有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調用這個函數。

+0

寫另一個JS意味着另一個依賴!這是不可取的! 我現在已經發現了這個問題!但我不知道如何解決它! 我已經嵌入SWF與SWFObject! 和BrowwserManager不適用於SWFObject! 沒有錯誤,只是由bbrowserManager返回的url爲NULLL! – 2010-07-04 18:20:42

+0

你沒有提到你正在使用SWFObject? 沒關係。 解決方案是註釋掉History.js中的一些代碼,並將它附加到HTML文件中。 這裏是你應該註釋掉的代碼。 /* if(player == null || player.object == null){ player = document.getElementsByTagName('embed')[0]; } */ and this /* if(players.length == 0 || players [0] .object == null){ var tmp = document。的getElementsByTagName(「嵌入」); players = tmp; } */ – KensoDev 2010-07-04 20:12:15

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];
 } 

這應該解決您的問題。

+0

我沒有找到第二塊代碼來評論它! 我剛剛找到第一個片段!但第二個根本不在那裏! – 2010-07-05 20:34:11

+0

你能再看一遍嗎? btw我已經升級到Flash Builder 4(Flex 4) – 2010-07-07 22:04:13

相關問題