如何在触发flash点击标记之前执行Javascript

时间:2013-08-30 09:53:15

标签: javascript flash

我有一个flash swf文件,它实现了clicktag功能(转到某个URL),因为我需要记录有多少用户点击flash,所以有没有办法在用户之前执行javascript函数(记录userid)被重定向到目的地?

这里是clickTag

on (release) {  
    if (clickTAG.substr(0,5) == "http:") {  
        getURL(clickTAG, "_blank");  
    }  
}

javascript函数看起来像:

function regUserid(ID){  
    $.ajax{  
        url:reg.php,  
        cache: false,  
        type: "GET",  
        data: ID 
    }  
}

1 个答案:

答案 0 :(得分:1)

首先,你的AJAX调用中有一些错误。它需要看起来像:

$.ajax({  
    url: reg.php,  
    cache: false,  
    type: "GET",  
    data: ID 
});

()需要添加。

http://api.jquery.com/jQuery.ajax/

其次,我要做的是将用户发送到您自己的网站并在网址中添加一个参数,以便您可以记录网址,并在JavaScript(甚至更好的PHP)功能中将其发送到正确的网站。

类似于:

on (release) {  
    if (clickTAG.substr(0,5) == "http:") {  
        getURL('http://www.yourownurl.com/reg.php?url=' + clickTAG, "_blank");  
    }  
}

在您的reg.php中,您可以保存clickTag并使用header('location:' . $_GET['url'])将其发送到正确的网站。

<强>更新

如果您想使用ExternalInterface,可以执行以下操作:

on (release) {  
    if (clickTAG.substr(0,5) == "http:") {  
        ExternalInterface.call('regUserid', clickTAG);  
    }  
}

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html 假设您要将数据发送到regUserid函数。 clickTag是函数regUserid中的参数。 如果您这样做,您仍然需要将用户重定向到正确的网站。所以像document.location.href="http://www.example.com"