Actionscript在flash中测试时有效,但在html页面上没有?

时间:2012-02-29 13:59:02

标签: html actionscript-3 flash add

我正在尝试为网站制作广告。当有人点击广告时,应该将其重定向到网站,然后使用google analytics注册点击。

我用以下脚本完成了这个:

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");
}

当我使用preview-> flash运行它时,我点击表面,(有一个名为movieClip_3的大红色方块)它打开网页。然而,当我尝试发布为html时,大红色方块显示,但点击时没有任何反应。甚至不是console.log。我试过设置allowscriptaccess = always但是这并没有改变任何东西。

你能帮助我吗?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

安全问题?

  

开发人员应在将所有网址传递给此网址之前对其进行验证   功能

     

对于在浏览器中运行的本地内容,调用navigateToURL()   指定“javascript:”伪协议的方法(通过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',

您只能在服务器上进行测试,而不能在本地测试。

答案 1 :(得分:1)

我建议仔细检查安全设置(右键点击Flash容器 - >全局设置 - >高级 - >可信位置设置)。还要确保您的html文件包含您尝试执行的javascript函数,并在浏览器中查找阻止的弹出通知。也许你只是不允许弹出窗口运行。