年前,接了一个js控制Flash播放的小活,用到了 jquery 和 cookie操作,发现做起来还挺有嚼头。
思路:
- 需要显示的flash文件
<div class="outbox" >
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="970" height="480">
<param name="movie" value="2014falsh.swf" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<embed src="2014falsh.swf" quality="high" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="970" height="480"></embed>
</object>
<div class="xbox">
<a href="#">x</a>
</div>
</div>
2、写一段JS控制<div class="outbox"></div>的显示
3、js:
var startplay = 2*1000;//开始播放
var playTime = 10*1000;//播放时间
var cookieName = "lz2014";
var cookieStr = "passyeargood";
var cookieTime = 24;//过期时间(小时)
var domain = "ch.net";
var path = "/";
var flashWidth = 970;
var posX = (document.documentElement.offsetWidth-flashWidth)/2;
var posY = 100;
var opacity = 0.9;
var speed = 800;
window.οnlοad=function(){
showmdcg();
}
function showmdcg()
{
alert(posX);
//判断cookie 如果有就执行操作
var cookie = getCookie(cookieName);
if(cookie!=null)
{
}
else
{
//创建cookie
setCookie(cookieName,cookieStr,cookieTime,domain,path);
//延迟
var t1 = setTimeout(function(){
toggleFlash(opacity,speed,"show");
$(".outbox").offsetLeft = posX;
$(".outbox").offsetTop = posY;
clearTimeout(t1);
},startplay);
//否则先显示
var t2 = setTimeout(function(){
toggleFlash(opacity,speed,"hide");
clearTimeout(t2);
},playTime);
$(".outbox .xbox a").click(function(){
toggleFlash(opacity,speed,"hide");
clearTimeout(t2);
});
}
}
3、注意事项:
利用js的settimeout控制显示flash的时间,需要注意在每次settimeout的最后一句要加上cleartimeout清除一下当前定时器。
利用cookie控制过期时间,注意IE浏览器对于domain=“localhost”是不识别的,建议放在ff下测试过期时间,然后换成真实域名测试IE.
jquery的offset(postion)在jquery1.4之前是不起作用的,1.2 1.3版本只能去坐标不能设置坐标。