0

在我的工作中,我主要做 Flash 横幅。通常我会使用MediaMindDoubleClick,但显然有时我需要开发广告以满足某些发布商(如 NineMSN 和 Yahoo!)的要求。

它们中的每一个都有不同的“clickTag”规格。clickTag 基本上只是一个变量的名称,它被解析为 flashvars,并包含人们点击广告时的点击 URL。

以下是一些关于:

clickTag
clickTAG
_root.clickTag
_level0.clickTag

以及上述的任何组合(即不同的外壳等)。

我认为这是不必要的_root_level0所以我删除了它们。然后我被其中一位发布者抨击说 clickTag 不正确(因为我_root从前面删除了)。她正在使用一些在线工具,允许他们查看应用于按钮的操作脚本,他们实际上并没有在他们的系统中测试广告以查看它是否有效。

所以,问题 1:我几乎可以肯定_root.var,_level0.var并且var都是同一件事(_root显然来自 / 主时间线)。除非它可以通过 flashvars 以一种使变量只能通过_level0or访问的方式进行解析_root(据我所知,你不能这样做)。

问题 2:我了解到的另一件事是在时间轴中应用点击,而不是直接在按钮本身上(我讨厌将任何代码直接放在对象上)。像这样:

btn.onRelease = function():Void
{
    getURL(clickTag, "_blank");
}

而不是将其放置在按钮本身上:

on(release)
{
    getURL(clickTag, "_blank");
}

我也看不出这里怎么可能有区别,或者那里有?

我的最后一个问题是:我花了一个小时创建了 12 份 3 种不同广告尺寸、两种不同样式的副本,以将适当的 clickTag 应用于每个横幅,以直接发送给发布商。为什么我不能像这样创建一个超级clickTag?

var clicktags:Array = [clickTag, clickTAG, uncommonClickTag];
btn.onRelease = function():Void
{
    var i:Number = 0;
    for(i; i<clicktags.length; i++)
    {
        var s:String = clicktags[i];

        if(s != undefined)
        {
            getURL(s, "_blank");
            break;
        }
    }
}
4

3 回答 3

3

问题1:你说的很对,你的出版商同事错了,但是她是(为)老板,可能没有接受你的解决方案所需的理解。对她来说,通过一些不透明的工具运行横幅并获得确认对她来说更安全,而要求她的老板接受你完美形成的“违规行为”绝对是“摇摆不定”。

另外,你能绝对确定你的横幅不会被加载到另一个 swf 中(破坏 _rootless 代码)吗?也许不太可能,但如果出现问题......

最后,正如您将看到的,问题 3 使整个事情变得毫无意义。是的,您确实可以执行类似代码片段的操作,但您必须使用字符串作为 flashvar 名称,并对从 _root[flashVarNameString] 获得的标签值进行未定义测试,如下所示:

var clicktags:Array = ["clickTag", "clickTAG", "uncommonClickTag"];
btn.onRelease = function():Void
{
    var i:Number;
    for(i; i<clicktags.length; i++)
        {
        var s:String = clicktags[i];
        var tagVal:String = _root[s];

        if(tagVal != undefined)
            {
                getURL(s, "_blank");
                break;
            }
        }
    }
于 2011-05-30T16:59:43.813 回答
0

此外,您搜索不同点击标签的最后一个代码片段也可能不会让可怜的女孩从她的横幅验证工具中获得 ok(从经验中谈起!;o))。

于 2011-08-13T18:57:27.737 回答
0

In my experience the following snippet works for multiple variable clicktag names and is a lot shorter and simpler:

btn.onRelease = function():Void
{
    var url = (_root.ClickTag || _root.clickTag || _root.clicktag || _root.clickTAG || _root.ClickTAG);
    if (url.substr(0,4) == "http") {
        getURL(url, "_blank");
    }
}

Same code can be used on button instance:

on (release)
{
    var url = (_root.ClickTag || _root.clickTag || _root.clicktag || _root.clickTAG || _root.ClickTAG);
    if (url.substr(0,4) == "http") {
        getURL(url, "_blank");
    }
}

I never tell this to my clients or project managers, just because they won't understand.

于 2014-02-21T13:06:43.967 回答