2009-02-11 48 views
1

我工作的組織創建了一個小型Flash小部件,我們鼓勵支持者將其放置在他們的網站上。我試圖確定是否有方法來改進我們從這些嵌入式小部件獲得的統計信息。Flash對象知道它所在的頁面是什麼?

大多數情況下,我想獲取加載小部件的網站域。現在,我可以在服務器日誌中看到引用鏈接,但它包含完整的URL,並且我不想爲了取出域而編寫自己的日誌處理系統。

我知道的ActionScript很少,但我查看了ActionScript文檔以查看是否可以找到明顯的解決方案。我還沒有找到任何允許對象向瀏覽器提供頁面URL的內容。 System.Capabilities類似乎提供了很多關於玩家環境的信息,但不是玩家被調用的地方(據我所知,但可能我錯過了一些東西)。

回答

2
Steps: 
    1. Import external interface into your file: import flash.external.ExternalInterface; 
    2. Initialize a variable to store the url path: var urlPath; 
    3. Create a function to call external interface and assign the html page path to your variable: urlPath = ExternalInterface.call(」window.location.href.toString」); 
    4. Call the function when/if needed. 

實施例:

用JavaScript:window.location.href或window.location.href.toString(); 使用actionscript:ExternalInterface.call(「window.location.href.toString」); 外部接口的HTML示例

來源:http://blog.circlecube.com/2008/01/02/get-current-url-to-flash-swf-using-an-external-interface-call/

至獲取查詢字符串看到這篇文章:http://blog.circlecube.com/2008/03/20/get-current-url-and-query-string-parameters-to-flash-tutorial/

+0

+1。一旦你迷上了頁面的JavaScript,你就可以做任何你通常在JavaScript中做的事情,包括抓取/檢查頁面中的HTML。 – 2009-02-11 15:24:12

0

MochiBot的是,正是這一點,您可以使用他們的服務的服務(免費)或你可以看看他們使用的代碼(這是一個40線類)。這些都可以從他們的網站上獲得。

就讓我們來看看在他們的代碼表明,他們正在傳送什麼的大部分是這兩個:

Security.sandboxType; 
Capabilities.version; 
1

是的,你可以得到引用(或任何從DOM其他爲此事)。編寫抓取此信息的小型JavaScript片段,並使用ExternalInterface將這些片段插入到JavaScript頁面中。然後你可以做ExternalInterface.call(「eval」,「myfunction」)並讓這些javascript方法將數據返回到flash。

相關問題