Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.10.2016, 19:59
Новичок на форуме
Отправить личное сообщение для ssskynettt Посмотреть профиль Найти все сообщения от ssskynettt
 
Регистрация: 23.10.2016
Сообщений: 1

Электронное табло.
Нужно чтобы табло было по центру с 5 запросами ввода строк, которые будут выводиться на табло.

<p><script language="JavaScript"><!--

var messages = new Array()
messages[0] = "copyright 1 (c) "
messages[1] = "tomer shiran"
messages[2] = "лokaлизaция (c)"
messages[3] = "kубax ahдpeй"
messages[4] = "javascript archive"
messages[5] = "apxиb java-ckpипt'ob"
messages[6] = "зaxoдиte!!!"
messages[7] = "http://jsarchive.ru"

// число миллисекунд между двумя сообщениями
var pause = 3000

// установить нормальное расстояние между двумя символами
var space = 1

// установить высоту и ширину каждого символа
var height = 5
var width = 5

var letters = new letterArray()

var on = new Image(5, 5)
var off = new Image(5, 5)

// установить расположение изображения
on.src = "on.gif"
off.src = "off.gif"

var imageNum = document.images.length

// вычислить ширину табло
//var boardWidth = longest * (width + space) - space

// установить максимальную длину сообщения
var boardWidth = 0
for (var i = 0; i < messages.length; ++i) {
var lengthWithNoSpaces = messages[i].split(" ").join("").length
var numberOfSpaces = messages[i].length - lengthWithNoSpaces
var currentBoardWidth = lengthWithNoSpaces * (width + space) - space + numberOfSpaces * space * 2
if (boardWidth < currentBoardWidth)
boardWidth = currentBoardWidth
}

var running = false
var timerID = null

function letterArray() {
this.a = new Array(height)
this.a[0] = " ***"
this.a[1] = "* *"
this.a[2] = "*****"
this.a[3] = "* *"
this.a[4] = "* *"

this.b = new Array(height)
this.b[0] = "****"
this.b[1] = "* *"
this.b[2] = "****"
this.b[3] = "* *"
this.b[4] = "****"

this.c = new Array(height)
this.c[0] = " ***"
this.c[1] = "* *"
this.c[2] = "*"
this.c[3] = "* *"
this.c[4] = " ***"

this.d = new Array(height)
this.d[0] = "****"
this.d[1] = "* *"
this.d[2] = "* *"
this.d[3] = "* *"
this.d[4] = "****"

}

function drawBlank() {
var gt = unescape("%3e")

document.write('<TABLE BGCOLOR="#000000" BORDER=2 CELLPADDING=8' + gt + '<TR' + gt + '<TD BGCOLOR ALIGN="center" VALIGN="center"' + gt)

for (var y = 0; y < height; ++y) {
for (var x = 0; x < boardWidth; ++x) {
document.write('<IMG SRC="' + off.src + '" HEIGHT=5 WIDTH=5' + gt)
}
document.write('<BR' + gt)
}
document.write('</TD' + gt + '</TR' + gt + '</TABLE' + gt)
}

function setLight(state, x, y) {
if (state)
document.images[computeIndex(x, y)].src = on.src
else
document.images[computeIndex(x, y)].src = off.src
}

function drawLetter(letter, startX) {
// нарисовать букву на данных Х координатах
for (var x = 0; x < width; ++x) {
for (var y = 0; y < height; ++y) {
setLight(letters[letter][y].charAt(x) == "*", startX + x, y)
}
}
}

function drawSpace(startX) {
// создать небольшое расстояние между двумя символами
for (var x = 0; x < space; ++x) {
for (var y = 0; y < height; ++y) {
setLight(false, startX + x, y)
}
}
}

function computeIndex(x, y) {
return (y * boardWidth + x) + imageNum
}

function floodBoard(startX) {
for (var x = startX; x < boardWidth; ++x) {
for (var y = 0; y < height; ++y) {
setLight(false, x, y)
}
}
}

function drawMessage(num) {
var text = messages[num]

var i = 0
var j = 0

while (1) {
if (text.charAt(j) != " ") {
// нарисовать текущую букву
drawLetter(text.charAt(j), i)
i += width
} else {
drawSpace(i)
i += space
}

if (j < text.length - 1) {
drawSpace(i)
i += space
} else
break
++j
}

floodBoard(i)

if (num < messages.length - 1)
val = ++num
else
val = 0 // запустить цикл с начала

timerID = setTimeout("drawMessage(val)", pause)
}

function startSign() {
running = true

// подождать 3 секунды, затем вызвать функцию для вывода первого сообщения
drawMessage(0)
}

function stopSign() {
if(running)
clearTimeout(timerID)
running = false
}

// открыть форму
document.write
drawBlank()
<startSign()
// --></script></p>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание калькулятора стоимости Электроного табло webdiscovery Работа 2 16.07.2014 07:04
Как дополнить табло Faust VIII Общие вопросы Javascript 1 01.07.2009 06:23