Показать сообщение отдельно
  #10 (permalink)  
Старый 29.09.2013, 21:22
Новичок на форуме
Отправить личное сообщение для Dpakowa Посмотреть профиль Найти все сообщения от Dpakowa
 
Регистрация: 27.09.2013
Сообщений: 3

ого! Круто! Всем огромное спасибо, буду разбираться в ответах =)
собственно после того, как увидел первый комментарий решил забить на помощь и сюда не заходил. Пилил гиковское признание в любви девушке, вот что у меня получилось в конце http://forsaad.ruskyhosting.ru/
Теперь засяду переделывать =)
Ну и для тех, кому не хочется переходить по ссылке:

<!DOCTYPE HTML>
<head>
	<style>
	#matrix {
		height:100%; 
		width:100%; 
		top:0;
		left:0;
		position:absolute; 
		background-color:#000; 
		color:#00aa00; 
		font-family:Courier New;
		overflow:hidden;
		line-height:10px;
	}
	</style>
</head>

<body>
	<div id="matrix">
	.
	</div>
</body>

<script type="text/javascript">
function Column (maxlength) {

	this.maxlength = maxlength;
	
	this.speed = this.pause = getRandomInt(1, 5);

	this.length = getRandomInt(Math.floor(maxlength/2), Math.floor(maxlength/4 + maxlength/2));

	this.free_space = getRandomInt(0, Math.floor(maxlength/4));

	this.iterator = 0;
	
	//хардкод Start
	this.stoped = false;
	//END
	
	this.text = new Array(this.length + this.free_space);

	for (var i=0; i < this.text.length; i++) {
		if (i < this.length) {
			this.text[i] = String.fromCharCode(getRandomInt(65,90));
		} else {
			this.text[i] = "&nbsp;";
		}
	}
	
	this.length += this.free_space;
	
}

Column.prototype.inPause = function () {
	
	var result = true;
	
	//хардкод Start
	if (!this.stoped) {
	//END
	
		this.pause--;
		
		if (this.pause == 0) {
			this.pause = this.speed;
			result = false;
		}
	
	}
	
	return result;

}

Column.prototype.needNew = function() {

	result = false;

	if (this.iterator == this.text.length + this.maxlength) {
		result = true;
	}

	return result;

}

function getRandomInt(min, max) {

  return Math.floor(Math.random() * (max - min + 1)) + min;

}

function show() {

	var result = '';
	
	stop_this--;
	
	for (var i=0; i < columns.length; i++) {
	
		if (!columns[i].inPause()) {
		
			columns[i].iterator++;
			
			for (var j=0; j < columns[i].iterator; j++) {
			
				if (columns[i].iterator - (j + 1) < array.length) {
				
					if (columns[i].length - (j + 1) >= 0) {
					
						array[columns[i].iterator - (j + 1)][i] = columns[i].text[columns[i].length - (j + 1)];
					
					} else {
					
						array[columns[i].iterator - (j + 1)][i] = "&nbsp;";
					
					}
					//впадло гемороится, хардкод для любимой
					var my_text_array = [  '&nbsp;', '&nbsp;', 'S', 'A', 'A', 'D', '&nbsp;', '&nbsp;', 'I', 'C', 'H', '&nbsp;', 'L', 'I', 'E', 'B', 'E', '&nbsp;', 'D', 'I', 'C', 'H',  '&nbsp;', '&nbsp;'];
		
					if (stop_this<=0) {
						if (columns[i].iterator - (j + 1) == Math.floor(array.length/2)) {
							if (i > (Math.floor(array[0].length/2) - 13)) {
								if (i < (Math.floor(array[0].length/2) + 12)) {
									if (array[columns[i].iterator - (j + 1)][i] == my_text_array[i - Math.floor(array[0].length/2) + 12]) {
										columns[i].stoped = true;
					}}}}}
					//END hardcode
				}
			
			}
			
			if (columns[i].needNew()) {
			
				columns[i] = new Column(array.length);
				
			}
		}
	}
	
	for (var i=0; i < array.length; i++) {
		for (var j=0; j < array[i].length; j++) {
			if (array[i][j]=="&nbsp;") {
				result += array[i][j];		
			} else if (i < array.length-1) { 
			    if (i == Math.floor(array.length/2) && j>(Math.floor(array[0].length/2) - 13) && j<(Math.floor(array[0].length/2) + 12)){
					result += '<font color="#FFFFFF">' + array[i][j] + '</font>';
				} else if (array[i+1][j]=="&nbsp;") {
//					result += '<font color="#40FF00">' + array[i][j] + '</font>';
					result += array[i][j];
				} else {
					result += array[i][j];
				}
			}
		}
		result += '</br>';
	} 
elem.innerHTML = result;
}

function stop_start() {
	var elem = document.getElementById('stop');
  	if (stop) {
		elem.value='Старт';
      	timer = function() {};
		stop = false;
    } else {
      	elem.value='Стоп';
		timer = function() {
			requestAnimationFrame(timer);
			show(); 
		}	
		timer();
		stop = true;
	}
}

{
var elem = document.getElementById('matrix');
var width_length = Math.floor(elem.offsetWidth/10)+1;
var heigth_length = Math.floor(elem.offsetHeight/10)+2;
stop_this = heigth_length*4;

var columns = new Array(width_length);
for (var i=0; i < width_length; i++) {
	columns[i] = new Column(heigth_length);
}

var array = new Array(heigth_length);
for (var i=0; i < heigth_length; i++) {
	array[i] = new Array();
	for(var j=0; j < width_length; j++) {
		array[i][j] = "&nbsp;";
	}
}

var stop = true;

timer = function() {
   requestAnimationFrame(timer);
   show(); 
}

timer();

}


</script>

</html>


так и не нашел, как добавить кнопку "посмотреть"
Ответить с цитированием