【简答题】
试题五(15分)
[说明]
这是一个较为简单的滚动广告条例子。在页面上设立一个区域作为广告条区域,在该区域内采用颜色淡出(逐渐变浓出现,又逐渐变淡消失)的方式,将预先设定好的多条广告文字信息循环逐条显示。用户可以设定广告内容、循环次数、字体颜色等各项属性,从而产生不同的广告效果,并且该广告条可以在任何的页面中引用。
在下面的HTML文本中,为了简化文本和增加可读性,省略了大量关于浏览器的特殊属性设置,JavaScript程序中使用了以下一些函数:
setTimeout(函数名,时间) //设定限时器
setInterval(函数名,时间) //设定时间间隔触发器
clearInterval(参数略) //取消时间间隔触发器
[HTML文本]
advertise.htm中的内容:
<html><head><title>淡出式广告条</title></head>
<body bgcolor="#ffffff" text="#000000" leftmargin="0" topmargin="O">
<DIV id=elFader style="POSITION:relative;VISIBILITY:hidden;WIDTH:500px"><DIV
align=center>网站广告条区域</DIV></DIV>
<!— 设定页面中的广告条区域,JavaScript脚本通过控制区域内文字、颜色等产生淡出效果,从而形成多条广告文字的循环播放>
<SCRIPT language=JavaScriptl.2 type=text/javascript>
prefix="";
arNews=["欢迎使用广告条","","广告内容循环播放","","广告切换采用淡出处理",""]
</SCRIPT>
<!-- 设定广告词,每两条广告间用空串隔开>
<SCRIPTlanguage=JavaScriPtl.2 (1) type=text/javascript></SCRIPT>
<!-- 调用存放于服务器上的JavaScript脚本文件fader.js,以产生广告效果 >
</body></html>
fader.js中的内容:
<注:fader中文意义为淡出,各常量前缀FDR为fader的缩写>
//在fader.js的头部,定义了所使用的各种常量、变量,包括循环的次数、字体的颜色等
//同时获取关于浏览器的特性信息
………
FDRmaxLoops=100; FDRfinite=(FDRmaxLoops>0);
FDRblendInt=6; blendTimer=null;
//定义最大循环次数、是否无限循环、淡出处理时间间隔(秒)、时间间隔触发器
//以下为代码主体部分
……
(2) = FDRcountLoads;//设置在窗口装载时运行主体函数FDRcountLoads
function FDRcountLoads0{ (3) }
//设置限时器,约定1毫秒后运行初始化函数FDRinit
functionFDRinit(){
if( 4 ) return;//如果没有定义区域elFader就退出
elFader.innerHTML="";
……
//函数FDRinit的主体部分为根据浏览器的类型初始化elFader的各属性
FDRstart(0); }
//定义初始化函数FDRinit(),在函数尾部调用广告效果开始函数
function FDRstart(ind){
newsCount=ind; //用户需要显示的广告条数,0值表示显示预设的全部广告信息
if( (5) ) loopCount=0; //如处于有限循环次数状态,初始化循环次数变量
FDRdo(); //执行广告文字信息切换
blendTimer= (6) ;
} //定义时间间隔触发器,按照设定的处理时间间隔触发文字信息切换
function FDRdo(){
if( (7) )return;
//若没有定义时间间隔触发器并且循环次数大于0,则退出
if( (8) ){
FDRend();
return; }
//当循环次数有限,并且当前已是最大循环次数时就终止广告切换并退出
FDRfade();
//执行淡出处理程序,切换广告内容
if(newsCount=arNews.1ength){
newsCount=0;
if(FDRfinite) (9) ;//如果处于有限循环次数状态,则循环变量加1
} //该段程序较为特殊,每次当newsCount==arNews.1ength时,表示所有广告已经循环播放了一次,所以循环次数加1,newsCount在每次切换广告内容时都会增加,其处理部分在FDRmakeStr()中
} //定义广告切换函数,通过调用淡出处理函数实现广告切换
function FDRmakeStr0{
tempStr="";
……//FDRmakeStr()的主体部分为根据浏览器特性,从字符串数组arNewsz中取出显示下一条广告信息,并将newsCount的值加2,具体内容省略
return tempStr;
} //定义输出广告信息函数,通过该函数输出下一条要显示的信息
function FDRfade(){
newsStr=FDRmakeStr();
if(IEhasFilters) elFader.filters.blendTrans.Apply();
elFader.innerHTML=newsStr;
if(IEhasFilters) elFader.filters.blendTrans.Play();
} //定义淡出处理函数,通过调用IE浏览器的过滤器产生淡出效果
function FDRend(){
(10) ;//消除时间间隔触发器
blendTimer=null;
} //定义结束广告切换函数