如何检查SWF Flash文件是否实现clickTAG?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查SWF Flash文件是否实现clickTAG?相关的知识,希望对你有一定的参考价值。

我们一直在开发会员系统,并希望以某种方式检测已编译的SWF广告是否实现clickTAG。有什么方法可以自动执行此过程?

答案

当我调试Flash标语时,我使用flasm(http://www.nowrap.de/flasm.html Windows + linux)来反编译swf文件。您都可以将输出输出到控制台(-d)或将其转储到文件中:

$ flasm -d file.swf> out.txt

然后在文件/输出中搜索clickTag / clickTAG。

  • 需要执行权限。
另一答案

这是一个复杂的问题。

建议的解决方案仅解决不正确的clicktag(例如clickTAG与clickTag)的情况。以下是其他潜在问题:-没有可点击的图层,没有clicktag代码-具有硬编码网址的可点击图层-可点击的图层,仅覆盖横幅的一小部分-AS3中的所有上述内容(flasm仅支持AS2)

另一答案

[http://adopstools.net可让您提交瑞士法郎,并检查其中是否包含clicktag以及其他内容

另一答案

如果我正确理解了您需要做什么,应该可以通过加载广告,然后模拟其显示树中所有内容的点击来构建半自动测试SWF文件。

您可以使用URLRequest的data属性将参数传递给已加载的swf,如下所示:

var loader:Loader = new Loader();
var req:URLRequest = new URLRequest("ad.swf");
var clickTagURL:String = "http://www.example.com";
req.data = new URLVariables("clickTAG=" + clickTagURL + "&clickTag=" + clickTagURL + "&clicktag=" + clickTagURL);
loader.load(req);

((尽管您需要在浏览器中或独立运行它,因为Flash IDE抱怨查询字符串参数。)

然后,您可以递归地浏览显示列表以触发点击:

testClicks(loader.content as DisplayObjectContainer);

function testClicks(target:DisplayObjectContainer):void {
    var numC:uint = target.numChildren;
    for (var i:uint = 0; i < numC; i++) {

        target.getChildAt(i).dispatchEvent(new MouseEvent(MouseEvent.CLICK));

        if (target.getChildAt(i) is DisplayObjectContainer) {
            testClicks(target.getChildAt(i) as DisplayObjectContainer);
        }
    }
}

如果您将测试广告的文件夹设置为受信任,或使用调试播放器,则可以查看这些点击是否导致广告打开了网址。

如果开发人员改用了MOUSE_DOWNMOUSE_UP,可能也值得触发,而且显然不会像jdangu所提到的那样揭示诸如单击区域很小的问题,但希望它可以用作基本测试。] >

另一答案

您可以使用诸如www.adbannerking.com这样的clicktag检查器,它将显示SWF文件中的clicktag。该软件甚至允许您无需源文件(.fla)即可相应地更改clicktag。同时,您可以快速同时检查/更改x个SWF文件。

以上是关于如何检查SWF Flash文件是否实现clickTAG?的主要内容,如果未能解决你的问题,请参考以下文章

Flash 文件 .exe 和 .swf 系统要求

使用官方 flash 插件呈现 swf 文件

flash跨域策略文件crossdomain.xml配置详解

[VB]如何启动动画.swf文件?

网页插入SWF视频,如何带有播放控制按钮、进度条等!

如何把SWF文件作为背景添加到网页中去