2012-02-29 81 views
0

我正在嘗試爲網站製作廣告。當有人點擊廣告時,它應該將其重定向到一個網站,並通過谷歌分析註冊點擊。Actionscript在Flash中測試時工作,但不在html頁面上測試?

import flash.external.ExternalInterface; 

movieClip_3.addEventListener(MouseEvent.CLICK, onClick); 

function onClick(event:MouseEvent):void { 

    trace("hi"); 

    ExternalInterface.call("console.log", "test"); 
    //ExternalInterface.call("_gaq._trackPageview", "/vpv/annoncer/[firmanavn.dk]"); 

    navigateToURL(new URLRequest("http://www.google.com"), "_blank"); 
} 

當我運行這個使用預覽 - > Flash和我在曲面上單擊(其中有一個名爲movieClip_3紅色大廣場)打開:

我曾與下面的腳本做到了這一點網頁。但是,當我嘗試發佈爲HTML,大紅色正方形顯示,但沒有發生點擊。甚至沒有console.log。我試過設置allowcriptaccess = always但是這並沒有改變任何東西。

你們能幫我嗎?任何幫助表示讚賞。

+0

'ExternalInterface.call(「function(){console.log('test')}」)'是否工作? – inhan 2012-02-29 14:20:21

+0

嘗試'ExternalInterface.call(「javascript:console.log」' – mgraph 2012-02-29 14:21:04

+0

「hi」被跟蹤? – Manish 2012-02-29 15:57:55

回答

2

安全問題?

開發人員在將它們傳遞給這個 函數之前應驗證所有URL。

對於在瀏覽器中運行的本地內容,則調用指定一個「的javascript:」給navigateToURL() 方法僞協議(通過作爲第一個參數傳遞的URLRequest 對象)如果SWF 文件只允許並且包含網頁(如果有的話)位於 本地信任的安全沙箱中。有些瀏覽器不支持使用navigateToURL()方法使用 javascript協議。相反,考慮使用ExternalInterface API的call()方法調用 以調用封閉HTML頁面中的 JavaScript方法。

來源:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/package.html#navigateToURL()

編輯: 由於JavaScript是不允許出來的沙箱,你可以用ExternalInterface嘗試:

ExternalInterface.call("javascript_functionname", "mypage.html"); 

在要發佈的參數:

'allowScriptAccess', 'always', 

您只能在本地測試您的服務器。

+0

那麼我不知道如何確保腳本SWF在受信任的安全沙箱中?我正在使用Chrome來測試它,它應該支持這個功能嗎?我的意思是navigateToUrl函數是閃存IDE提供的標準片段的一部分?Should'nt它被支持?:/ – Troels 2012-02-29 20:59:29

1

我建議仔細檢查安全設置(右鍵單擊閃存容器 - >全局設置 - >高級 - >可信位置設置)。還要確保你的html文件包含你正在執行的JavaScript函數,並在瀏覽器中查找阻止的彈出式通知。也許你只是不允許彈出窗口運行。

相關問題