Flash横幅广告同步as3

时间:2015-02-12 11:43:20

标签: actionscript-3 flash banner

如何确保3个横幅(2个摩天大楼和1个排行榜)在网页上显示的同时播放? 我需要将文件发送到将托管横幅的第三方网站。

我是否需要为每个横幅文件添加广告代码 - 或广告主机是否做了他们的结果?

我使用as3以及任何简单易懂的帮助,因为我不是代码向导! 非常感谢。 麦克

1 个答案:

答案 0 :(得分:1)

您可以使用AS3中的ExternalInterface类和广告页面中的JavaScript来执行此操作。所以它需要与主持人合作。

您的横幅需要有两个功能:

function reportReady():void {
    // here you report ready by calling JS-side function via ExternalInterface
    // you also have to report banner ID,
    // so use banner1, banner2, etc. for different banners
    ExternalInterface.call("reportReady", "banner1"); 
}

function startAnimation():void {
    // here you start animation, and don't forget to stop calling reportReady()
}

// also you need to register a callback to hear calls from JS
ExternalInterface.addCallback("startAnimation", startAnimation);

现在有一些间隔连续调用reportReady函数,比如1/10秒。但请确保它仅在横幅加载完成后才开始调用。这就是你在AS3中所需要的一切。

现在,JS部分。在页面代码中,您需要一个JS函数和三个横幅状态的持有者:

var banner_list = [false, false, false];

function reportReady(banner_id) {
    // some very basic code to determine which banner called
    if (banner_id == "banner1") banner_list[0] = true;
    else if (banner_id == "banner2") banner_list[1] = true;
    else if (banner_id == "banner3") banner_list[2] = true;
    // now check if all three banners have reported, also very basic code
    if (banner_list[0] && banner_list[1] && banner_list[2]) {
        // activate all banners here using their ids
        document["banner1"].startAnimation();
        document["banner2"].startAnimation();
        document["banner3"].startAnimation();
    }
}

“banner1”,“banner2”和“banner3”是HTML中Flash对象的ID。

如果您碰巧遇到一些问题,请阅读ExternalInterface,网上有大量信息和示例。