This article shows how to create a flow flash ad by using javascript together with swfobject.
@see getScroll.js
@see http://code.google.com/p/swfobject/
[codesyntax lang=”html4strict”]
<!DOCTYPE html>
<html dir="ltr" lang="en-US">
<head>
<title>flash flow ad using swfobject</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="getScroll.js"></script>
<script type="text/javascript" src="swfobject.js"></script>
</head>
<body>
<!--main content-->
<div style="height:2000px;">content</div>
<!--ad-->
<div id="ad-flow" style="top:5px; left:100px; position:absolute;">
<div id="ad-test"></div>
<a style="text-align:left; display:block; background:#eee; width:120px;" href="javascript:void(0)" onclick="javascript:closeAd();" hidefocus="true">关闭</a>
</div>
<!--the flow ad script -->
<script type="text/javascript" src="ad-flow.js"></script>
</body>
</html>
[/codesyntax]
The ad-flow.js goes here :
[codesyntax lang=”javascript”]
// to close the ad and stop interval heart beat
function closeAd(id)
{
document.getElementById('ad-flow').style.visibility = "hidden";
document.getElementById('ad-test').style.visibility = "hidden";
window.clearInterval(int);
}
// global value to log the last position
var lastY = 0;
// the heart beat function
function heartBeat()
{
// get current top position
var curY = getScroll().t;
// speed : the bigger the faster
var speed = 0.05;
percent = speed * (curY - lastY);
if (percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
// keep stay there!
document.getElementById("ad-flow").style.top = parseInt(document.getElementById("ad-flow").style.top)
+ percent + "px";
// log last position
lastY = lastY + percent;
}
// beat every 1 microsecond
window.setInterval("heartBeat()", 1);
// flash ad embed by swfobject
var flashvars = {};
var params = {
// important for getUrl() in flash
allowscriptaccess : "always"
};
var attributes = {};
swfobject.embedSWF(
"http://www.kimbs.cn/static/ad-test.swf",
"ad-test",
"120",
"270",
"9.0.0",
"expressInstall.swf",
flashvars,
params,
attributes
);
[/codesyntax]