在查询字符串中传输变量

时间:2014-11-05 17:06:22

标签: actionscript-3 clicktag

enter image description here

我拉我的头发,我仍然无法解决这个问题。请告诉我这些代码我做错了什么?

错误(新):

No Error, but display undefined;cppar=1&EmailURLVariable=aa@aa.com

代码(更新x3) -

import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.net.navigateToURL;

var EmailFlashVariable = 'aa@aa.com'
var url:String = root.loaderInfo.parameters.clickTAG + ';cppar=1&EmailURLVariable=' + EmailFlashVariable
var url_request:URLRequest = new URLRequest(url)

mcButton.addEventListener(MouseEvent.CLICK, ADFclicked)
function ADFclicked(event:MouseEvent) { 
navigateToURL(url_request, '_blank')  

我添加了

<param name="flashvars" value="clickTAG=http://www.freescoreonline.com">

在生成的HTML中

2 个答案:

答案 0 :(得分:0)

  1. 您拼错navigateToUrl错误,区分大小写:navigateToURL(请查看导入是否正确)

  2. 您尚未在任何地方定义getParameter(您已经展示过),或许您在此处要做的是loaderInfo.parameters.clickTAG而不是getParameter("clickTAG")

  3. 以这种方式试一试,看看它是否有效:

    navigateToURL(new URLRequest(root.loaderInfo.parameters.clickTAG + ";cppar=1&EmailURLVariable=" + EmailFlashVariable));
    

    如果undefined的结果仍然是root.loaderInfo.parameters.clickTAG,那么您可能会错误拼写clickTAG,或者参数未正确传递给swf。


    另一种方法可以尝试直接从页面的url获取参数(因为你没有显示你的html源代码,所以不可能知道如何解决你的问题)。

    import flash.external.ExternalInterface;
    var fullUrl:String = ExternalInterface.call("window.location.href.toString");
    var vars:URLVariables = new URLVariables(fullUrl.substr(fullUrl.lastIndexOf("?") + 1)); //the substring grabs only everything right of the ? in the url
    
    navigateToURL(new URLRequest(vars.clickTAG + ";cppar=1&EmailURLVariable=" + EmailFlashVariable));
    

答案 1 :(得分:0)

要在html页面中显示你的swf,我们通常会使用这样的代码(你当然可以修改它,它是由Flash生成的):

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400">
    <param name="movie" value="banner.swf">
    <param name="allowScriptAccess" value="sameDomain">             
    <param name="flashvars" value="clickTAG=http://www.example.com">
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="banner.swf" width="550" height="400">
        <param name="movie" value="banner.swf">
        <param name="allowScriptAccess" value="sameDomain">
        <param name="flashvars" value="clickTAG=http://www.example.com">
    <!--<![endif]-->
        <a href="http://www.adobe.com/go/getflash">
            <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player">
        </a>
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
</object>

您可以在此处看到我使用flashvars将params传递给我们的swf文件(banner.swf),如果您有能力banner.swf?clickTAG=http://www.example.com,建议您执行此操作而不是flashvars {1}}当然。

在AS3中,要获得flashvars?param=value传递的参数,我们会这样做:root.loaderInfo.parameters.param。在您的情况下,您可以执行以下操作:

import flash.events.MouseEvent
import flash.net.URLRequest

var EmailFlashVariable:String = 'aa@aa.com'
var url:String = root.loaderInfo.parameters.clickTAG + ';cppar=1&EmailURLVariable=' + EmailFlashVariable
var url_request:URLRequest = new URLRequest(url)

button.addEventListener(MouseEvent.CLICK, ADFclicked)
function ADFclicked(event:MouseEvent) { 
    navigateToURL(url_request, '_blank')    
}

我希望现在很清楚,请尽量解释您的问题并提供其他人的所有详细信息以帮助您。

对于flashVars,请查看此处swfs flashVars (by Adobe),并在此处获取非常好的教程,以便更好地了解AS3 flashVars