-1

在此处输入图像描述

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

错误(新):

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

4

2 回答 2

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

  2. 您还没有getParameter在任何地方定义(您已经展示过),也许您在这里想要做的是loaderInfo.parameters.clickTAG而不是getParameter("clickTAG")?

试试这种方式,看看它是否有效:

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));
于 2014-11-05T17:33:15.167 回答
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将参数传递给我们的 swf 文件 ( banner.swf),建议您这样做,而不是banner.swf?clickTAG=http://www.example.com如果您有能力使用flashvars当然。

在 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(由 Adob​​e 提供)和此处查看非常好的教程,以更好地了解AS3 flashVars

于 2014-11-05T21:16:12.143 回答