2012-03-29 15 views
1

我是一名Flash遊戲開發人員。我需要能夠確定SWF所嵌入頁面的URL,並且我無法使用ExternalInterface。原因是許多Flash門戶設置allowScriptAccess =「never」。閃存門戶實際上並不實際託管SWF本身,但將SWF嵌入其頁面並從別人的服務器加載SWF也是很常見的。我需要一種可靠的方法來確定嵌入SWF的頁面的URL,並且我可以使用外部服務器。AS3 - 在我的服務器上調用PHP腳本以確定SWF的URL

我知道這是不可能單獨使用閃光燈,但我相信應該可以結合使用外部服務器。

在搜索過程中,我遇到了一篇論壇帖子,上面寫着:「想出來:服務器可以獲取頁面地址(當瀏覽器請求文件服務器可以讀取頁面地址時)並將其作爲參數返回給閃存。不幸的是,沒有提供進一步的細節。該線程可以在這裏找到:

http://www.actionscript.org/forums/showthread.php3?t=138370

我甚至不知道什麼是PHP我正在尋找 - 我有網絡技術的一知半解Flash外。我的問題是:

  1. 這實際上是可能的嗎?
  2. 如果是這樣,我該用什麼來做到這一點? PHP是我在找什麼?還有別的嗎?

更新: 我的目標(但它可以達到)是獲得該SWF被不依賴於任何特定的嵌入設置(所以沒有ExternalInterface的,或傳遞一個Flash變數看到的網址)。我無法控制SWF嵌入的方式和位置。例如,SWF託管在somedomain.com/test.swf上,它嵌入fungames.com/cool-game。我需要知道該網址是fungames.com/cool-game。瞭解實際SWF文件的託管位置不是有用的信息。如果完整的URL無法獲得,那麼該域名就足夠了。

更新2: 我在我的服務器上有設置與AMFPHP,我得到了它的返回HTTP_REFERER,但在我的測試情況下,返回的SWF的網址,而不是網頁的URL的SWF嵌入在。我可以看到不同的屬性嗎?

+0

關於您的目標可能是有幫助可能有解決辦法之外的問題:) – Marty 2012-03-29 22:26:02

+0

你需要完整的網址還是隻需要域名就足夠了? – 2012-03-29 23:32:07

+1

我已經添加了兩個更新來闡明我在找什麼,以及到目前爲止我所做的。 – ErebosGames 2012-03-30 00:02:57

回答

1

您可以通過使用該得到一個正在運行的SWF的URL:

var url:String = LoaderInfo(root.loaderInfo).url; 
+0

這將返回SWF的URL,它不會返回嵌入SWF的頁面的URL。我需要知道SWF所嵌入的頁面的URL。 – ErebosGames 2012-03-29 22:06:22

+0

不確定如果沒有ExternalInterface調用,這是可能的。什麼是用例? – francis 2012-03-29 22:10:36

+0

用例是遊戲傳播到數千個不同的門戶網站,我無法控制它是如何嵌入的,因此我不能使用ExternalInterface,因爲許多門戶都有allowScriptAccess =「假「 – ErebosGames 2012-03-30 00:04:05

0

您的SWF可以調用服務器上的PHP頁面並引用$_SERVER['HTTP_REFERER']財產

+0

將用戶代理引用到當前頁面的頁面地址(如果有的話),由用戶代理設置。並非所有的用戶代理都會設置它,有些提供了將HTTP_REFERER修改爲功能的功能。 **總之,它不可能真正被信任。** - php.net – Marty 2012-03-29 22:35:22

+0

它迄今爲止的最佳答案 – Ronnie 2012-03-29 22:38:33

+0

真正的隊友,只需添加一些信息,以防OP需要更加可靠的方式來跟蹤這些信息:) – Marty 2012-03-29 22:40:42

相關問題