我正在尝试为网站制作广告。当有人点击广告时,应该将其重定向到网站,然后使用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但是这并没有改变任何东西。
你能帮助我吗?任何帮助表示赞赏。答案 0 :(得分:2)
安全问题?
开发人员应在将所有网址传递给此网址之前对其进行验证 功能
对于在浏览器中运行的本地内容,调用navigateToURL() 指定“javascript:”伪协议的方法(通过URLRequest 作为第一个参数传递的对象)仅在SWF时允许 文件和包含的网页(如果有的话)在 本地信任的安全沙箱。有些浏览器不支持使用 使用navigateToURL()方法的javascript协议。相反,考虑一下 使用ExternalInterface API的call()方法来调用 封闭HTML页面中的JavaScript方法。
修改强>
由于不允许在沙箱中使用javascript,因此您可以尝试使用ExternalInterface
:
ExternalInterface.call("javascript_functionname", "mypage.html");
在发布参数中:
'allowScriptAccess', 'always',
您只能在服务器上进行测试,而不能在本地测试。
答案 1 :(得分:1)
我建议仔细检查安全设置(右键点击Flash容器 - >全局设置 - >高级 - >可信位置设置)。还要确保您的html文件包含您尝试执行的javascript函数,并在浏览器中查找阻止的弹出通知。也许你只是不允许弹出窗口运行。