Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 20.10.2013, 00:01
Интересующийся
Отправить личное сообщение для eko24 Посмотреть профиль Найти все сообщения от eko24
 
Регистрация: 04.11.2012
Сообщений: 24

Огромное вам спасибо
Ответить с цитированием
  #12 (permalink)  
Старый 20.10.2013, 04:11
Интересующийся
Отправить личное сообщение для eko24 Посмотреть профиль Найти все сообщения от eko24
 
Регистрация: 04.11.2012
Сообщений: 24

Помогите добить скрипт.
Залил сюда:http://mw3.vn.ua/greenwave/traffic_lights.html
Получилось синхронно обращаться к фазам светфора и к координатам.
Но непонятно почему выкидывает ошибку.
Мои новые наработки можно увидеть между 71й и 104й строкой
Ответить с цитированием
  #13 (permalink)  
Старый 20.10.2013, 10:31
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Переписал немного функцию, чтоб было понятнее
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<style type="text/css">
span {padding-left:50px; width: 50px; height: 50px;}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(function() {
	traffic_lights = [
		[{color:'green' ,time:9 },
		{color:'yellow' ,time:6 },
		{color:'red' ,time:19 },],

		[{color:'green' ,time:9 },
		{color:'yellow' ,time:6 },
		{color:'red' ,time:19 },],
							
		[{color:'green',time:30},
		{color:'yellow',time:6},
		{color:'red',time:17},],		
								
		[{color:'green',time:30},
		{color:'yellow',time:6},
		{color:'red',time:17},],		
							
		[{color:'red',time:29},
		{color:'yellow',time:6},
		{color:'red',time:27},],	
								
		[{color:'red',time:29},
		{color:'yellow',time:6},
		{color:'red',time:27},],
							 
		[{color:'green',time:32},
		{color:'yellow',time:6},
		{color:'red',time:40},],
							
		[{color:'green',time:32},
		{color:'yellow',time:6},
		{color:'red',time:40},],
							 
		[{color:'green',time:37},
		{color:'yellow',time:6},
		{color:'red',time:33},],	
							
		[{color:'green',time:37},
		{color:'yellow',time:6},
		{color:'red',time:33},],	
							
		[{color:'red',time:23},
		{color:'yellow',time:3},
		{color:'green',time:80},
		{color:'yellow',time:6},],
							
		[{color:'red',time:56},
		{color:'yellow',time:3},
		{color:'green',time:21},
		{color:'yellow',time:6},],
	]

	var traffic_locations = [
		{x1:47,y1:63,x2:70,y2:84},
		{x1:47,y1:103,x2:70,y2:124},
		{x1:47,y1:194,x2:70,y2:215},
		{x1:47,y1:234,x2:70,y2:255},
		{x1:47,y1:363,x2:70,y2:384},
		{x1:47,y1:403,x2:70,y2:424},
		{x1:47,y1:578,x2:70,y2:599},
		{x1:47,y1:618,x2:70,y2:639},
		{x1:47,y1:709,x2:70,y2:730},
		{x1:47,y1:749,x2:70,y2:770},
		{x1:47,y1:878,x2:70,y2:899},
		{x1:47,y1:918,x2:70,y2:939},
	]
	for (var a = 0, f; a < traffic_lights.length; a++) {
		var g = traffic_lights[a];
		f = $("#c" + a);
		(function (el, colorsForThis, num) {
			var b = 0,
			time = 0;
			return function s() {
				if(!time) {
					var coord = traffic_locations[num];//перехожу к координатам светофоров
					var toWrite = '';
					toWrite += '(' + num; //номер светофора
					toWrite += ' - ' + coord.x1 + '.' + coord.y1 + '.' + coord.x2 + '.' + coord.y2 + ' - '; //координаты
					toWrite += colorsForThis[b].color + ') '//цвет
					$('#log').html($('#log').html() + toWrite);
					
					el.css({"background-color": colorsForThis[b].color});
					time = colorsForThis[b].time;
					b = ++b % colorsForThis.length;
					
				}
				el.html(time);
				time--;
				window.setTimeout(s, 1e3);
			}
		})(f, g, a)();
	}
})
</script>
</head>
<body>
<span id="c0"></span>
<span id="c1"></span><br><br>

<span id="c2"></span>
<span id="c3"></span><br><br>

<span id="c4"></span>
<span id="c5"></span><br><br>

<span id="c6"></span>
<span id="c7"></span><br><br>

<span id="c8"></span>
<span id="c9"></span><br><br>

<span id="c10"></span>
<span id="c11"></span>
<div id="log"></div>
</body>
</html>
Ответить с цитированием
  #14 (permalink)  
Старый 20.10.2013, 10:35
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от eko24
Но непонятно почему выкидывает ошибку.
По ссылке ошибку не выкидывает, но понятно почему выкидывал.
у вас массив координат содержит массивы, в каждом из которых по одному элементу - объект с координатами. А надо чтоб массив содержал не массивы, а объекты. На пальцах:
Вместо:
[[{}],[{}],[{}],[{}]]
надо
[{},{},{},{}]
Ну, или оставить как есть, но общаться соответствующе
var tl = traffic_locations[a][0];//перехожу к координатам светофоров
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по jquery - как узнать какой тэг? APL Общие вопросы Javascript 7 09.06.2016 15:22
Как узнать какой скрипт вызывается при клике по эленету (если это прямо не прописано) Dmitriy Komar Events/DOM/Window 4 08.12.2011 17:21
Массивы. Как узнать ключ, зная значение? jsuse Общие вопросы Javascript 4 24.11.2011 19:03
Как узнать подключен ли JavaScript у пользователя? frost18 Элементы интерфейса 1 26.10.2011 17:16
Как узнать о том, что флэш уже загрузился. Snipe Общие вопросы Javascript 4 29.01.2009 11:21