Online Documentation Server
 ПОИСК
ods.com.ua Web
 КАТЕГОРИИ
Home
Programming
Net technology
Unixes
Security
RFC, HOWTO
Web technology
Data bases
Other docs

 


 ПОДПИСКА

 О КОПИРАЙТАХ
Вся предоставленная на этом сервере информация собрана нами из разных источников. Если Вам кажется, что публикация каких-то документов нарушает чьи-либо авторские права, сообщите нам об этом.




Previous Table of Contents Next

<HTML>
<HEAD>
<TITLE>R-Banner</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--

// set speed of banner (pause in milliseconds between addition of
   new character)
var speed = 10
// decrease value to increase speed (must be positive)

// set pause between completion of message
// and beginning of following one
var pause = 1500 // increase value to increase pause

// set initial values
var timerID = null
var bannerRunning = false

// create array
var ar = new Array()

// assign the strings to the array's elements
ar[0] = "Welcome to our JavaScript page"
ar[1] = "We hope you enjoy the R-Banner script"
ar[2] = "It is designed to be more stable than regular banners"
ar[3] = "Don't forget to check out our other scripts"

// assign index of current message
var message = 0

// empty string initialization
var state = ""

// no value is currently being displayed
clearState()

// stop the banner if it is currently running
function stopBanner() {
  // if banner is currently running
  if (bannerRunning)
// stop the banner
clearTimeout(timerID)

  // banner is now stopped
  bannerRunning = false
}

// start the banner
function startBanner() {
  // make sure the banner is stopped
  stopBanner()

  // start the banner from the current position
  showBanner()
}

// assign state a string of "0" characters
// of the length of the
 current message
function clearState() {
  // initialize to empty string
  state = ""

  // create string of same length containing 0 digits
  for (var i = 0; i < ar[message].length; ++i) {
state += "0"
  }
}

// display the current message
function showBanner() {
  // if the current message is done
  if (getString()) {
// increment message
 message++

// if new message is out of range wrap around to first message
if (ar.length <= message)
message = 0

// new message is first displayed as empty string
clearState()

// display next character after pause milliseconds
timerID = setTimeout("showBanner()", pause)

// banner is now running
bannerRunning = true
} else {
// initialize to empty string
var str = ""

// build string to be displayed (only characters selected
  thus far are displayed)
for (var j = 0; j < state.length; ++j) {
str += (state.charAt(j) == "1") ? Ar[message].charAt(j)
  : " "
}

 // partial string is placed in status bar
 window.status = str

 // add another character after speed milliseconds
 timerID = setTimeout("showBanner()", speed)

 // banner is now running
 bannerRunning = true
}
}

function getString() {
  // set variable to true (it will stay true unless proven otherwise)
  var full = true

  // set variable to false if a free space is found in string
 (a not-displayed char)

  for (var j = 0; j < state.length; ++j) {
// if character at index j of current message has not been
placed in displayed string
if (state.charAt(j) == 0)
full = false
}
// return true immediately if no space found (avoid infinitive
loop later)
if (full)
  return true

// search for random until free space found (broken up via
 break statement)
while (1) {
// a random number (between 0 and state.length – 1 ==
message.length – 1)
var num = getRandom(ar[message].length)

// if free space found break infinitive loop
if (state.charAt(num) == "0")
break
}

// replace the 0 character with 1 character at place found
state = state.substring(0, num) + "1" + state.substring(num + 1,
state.length)

// return false because the string was not full (free space was
found)
return false
}

function getRandom(max) {
  return Math.round((max – 1) * Math.random())
}

// -->
</SCRIPT>
</HEAD>
<BODY onLoad="startBanner()">
</BODY>
</HTML>

Example 18-5 (ex18-5.htm). An R-banner.

Global Statements

// set speed of banner (pause in milliseconds
// between addition of new character)
var speed = 10
// decrease value to increase speed (must be positive)

// set pause between completion of message
// and beginning of following one
var pause = 1500
// increase value to increase pause

// set initial values
var timerID = null
var bannerRunning = false

// create array
var ar = new Array()

// assign the strings to the array's elements
ar[0] = "Welcome to our JavaScript page"
ar[1] = "We hope you enjoy the R-Banner script"
ar[2] = "It is designed to be more stable than regular banners"
ar[3] = "Don't forget to check out our other scripts"

// assign index of current message
var message = 0

// empty string initialization
var state = ""

// no value is currently being displayed
clearState()

At first, the number 10 is assigned to the variable speed, representing the pause in milliseconds between the popping up of two consecutive characters in the current message. A longer pause is assigned to the variable pause, representing the number of milliseconds between the completion of the current message and its deletion. A null value is assigned to the global variable timerID and the Boolean value false is assigned to the variable bannerRunning. Predefined messages are stored in an array. The variable message is assigned zero, the index of the first element of the array to be displayed, ar[0].

Previous Table of Contents Next


With any suggestions or questions please feel free to contact us