软件学堂

网游分类软件分类

利用JS代码捕获状态栏变化信息

2012-10-26 来源:网络

【实例名称】

JS代码捕获状态栏变化信息

【实例描述】

状态栏除可以实现文本滚动显示功能外,还可以通过数组实现信息的变化显示。本例学习如何在状态栏变化显示一组信息。

【实例代码】

<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>标题页-学无忧(www.xue51.com)</title> <script language="JavaScript"> //设置显示速度等变量 var speed = 10     //显示字与字的间隔 var pause = 1500   //显示第二组的间隔 var timerID = null var statusRun = false //设置要提示的文本数组 var ar = new Array() ar[0] = "这是第一组" ar[1] = "这是第二组" ar[2] = "这是第三组"

var message = 0 var state = "" clearState() //停止显示-也可作初始化显示 function stopStatus() {         if (statusRun)                 clearTimeout(timerID)         statusRun = false } //开始显示 function startStatus() {         stopStatus()         showStatus() } //初始化开始数据 function clearState() {         state = ""         for (var i = 0; i < ar[message].length; ++i) {                 state += "0"         } } //在状态栏显示信息 function showStatus() {         //判断是否显示下一组         if (getString()) {                 message++                 if (ar.length <= message)                         message = 0                 clearState()                 timerID = setTimeout("showStatus()", pause) //间隔1500毫秒显示下一组                 statusRun = true         } else {                 var str = ""                 for (var j = 0; j < state.length; ++j) {                         str += (state.charAt(j) == "1") ? ar[message].charAt(j) : "     "                 }                 window.status = str                 timerID = setTimeout("showStatus()", speed) //间隔10毫秒显示下一字                 statusRun = true         } } //用来判断显示组还是字的方法 function getString() {         var full = true         //此循环判断是否当前组数据没有显示完成         for (var j = 0; j < state.length; ++j) {                 if (state.charAt(j) == 0)  //初始时默认state都为0                         full = false         }         //full为真时,表示当前组数据显示完成         if (full)                 return true         while (1) {                 var num = getRandom(ar[message].length)                 if (state.charAt(num) == "0")                         break         }         state = state.substring(0, num) + "1" + state.substring(num + 1, state.length)         return false } //随机数的读取 function getRandom(max) {         return Math.round((max - 1) * Math.random()) } </script> </head> <body onLoad="startStatus()"> </body> </html>

【运行效果】

运行效果

【难点剖析】

本例的重点在于如何判断第一组已经显示完毕,如何在第一组显示完毕后再调用第二组。本例通过“getString”方法判断当前组是否显示完毕,然后通过“setTimeout”定时器.继续掉用后面的组。

【源码下载】

本实例JS代码下载

 

上一篇:JavaScript捕获方向键
下一篇:JS代码实现状态栏跑马灯效果

相关文章