Показать сообщение отдельно
  #4 (permalink)  
Старый 23.05.2013, 12:55
Интересующийся
Отправить личное сообщение для ed-210 Посмотреть профиль Найти все сообщения от ed-210
 
Регистрация: 22.05.2013
Сообщений: 14

Ну, во первых, с ошибками у меня тут все в порядке Все проверено и сбоев нет благодаря отличному инструменту Web Developer для Firefox!

Во вторых, этот this в функции placeCubs() действительно содержит объект окна, но вот интересная штука - кроме этого он содержит еще и все переменные, которые были созданы раньше обращения к этому объекту в такой форме, в виде массива с ассоциативными ключами, которые соответствуют именам этих переменных! Вот статья по этой теме!

В третьих, спасибо за совет насчет field.children[0]..., действительно это слегка уменьшает код и при этом работает! Я действительно не знал, что можно так делать

В четвертых, элемент массива cubeMap[i][1] в 43 строке скрипта не пустой, так как при загрузке сценария в браузер запускается функция genCubeMap() с локальной рекурсивной функцией внутри, которая создает значения в массиве cubeMap в виде массива 2ого уровня с рядом значений в 37 строке скрипта. Затем, после срабатывания события window.onload запускается функция placeCubs(), которая начинает обращаться к массиву cubeMap, в котором уже присутствуют 16 элементов с индексами с 0 по 15, из которых задействуются 15 элементов с индексами с 0 по 14.

Эта функция расставляет имеющиеся в HTML документе блоки с id="cube1" и до "cube15", с помощью свойств стиля left и top, в соответствии со значениями, помещенными рекурсивной функцией getCubeCoords() в массив cubeMap[i] с индексами [1] и [2], т.е. эти значения оказываются в cubeMap[i][1] и cubeMap[i][2] позициях и, по сути, являются координатами месторасположения каждого конкретного блока внутри поля field.

Надеюсь, я понятно объяснил?

Последний раз редактировалось ed-210, 23.05.2013 в 13:25.
Ответить с цитированием