如何确保3个横幅(2个摩天大楼和1个排行榜)在网页上显示的同时播放? 我需要将文件发送到将托管横幅的第三方网站。
我是否需要为每个横幅文件添加广告代码 - 或广告主机是否做了他们的结果?
我使用as3以及任何简单易懂的帮助,因为我不是代码向导! 非常感谢。 麦克
答案 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,网上有大量信息和示例。