Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Canvas. Как сделать или вообще нельзя? Вращение рандомизированно изменяемого объекта. (https://javascript.ru/forum/misc/43614-canvas-kak-sdelat-ili-voobshhe-nelzya-vrashhenie-randomizirovanno-izmenyaemogo-obekta.html)

рони 18.12.2013 23:06

Zemsky, на всякий случай
http://learn.javascript.ru/keyboard-events

Zemsky 18.12.2013 23:35

рони,
Вот спасибо! Буду разбираться..

рони 19.12.2013 00:03

Zemsky,
вариант управления стрелками ... кликнуть по квадрату вначале
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  div{height:100px;width:100px;background:#006400;position:relative}
  </style>
  <script>
window.onload = function () {
    var b = {
        39: ["left", 5],
        37: ["left", -5],
        40: ["top", 5],
        38: ["top", -5],
        left: 0,
        top: 0
    };
    document.body.onkeydown = function (a) {
        a = a || window.event;
        a = a.keyCode;
        var d = document.getElementById("show");
        if (a in b) {
            var c = b[a][0];
            b[c] += b[a][1];
            d.style[c] = b[c] + "px"
        }
    return false
}
};
</script>
</head>

<body>
<div id="show" ></div>
</body>
</html>

Zemsky 19.12.2013 00:53

рони,
Кладу в архив. Это ассоциативный массив? Вот со второй частью полная непонятка...

рони 19.12.2013 01:10

Цитата:

Сообщение от Zemsky
Вот со второй частью

что есть вторая часть?

Zemsky 19.12.2013 01:16

Цитата:

Сообщение от рони (Сообщение 287747)
что есть вторая часть?

document.body.onkeydown = function (a) {.......

Я еще только начал осваивать. Поэтому и задачу несложную себе формулирую. И постепенно усложняю.

tsigel 19.12.2013 18:28

рони,
Красиво, только зачем так сокращать, всё таки не в разработку отдаёте, а объясняете человеку :) А то получается полу обфусцированный код :)

tsigel 19.12.2013 18:33

Zemsky,
a = a || window.event;
Это для кроссбраузерности. В итоге в а будет событие. (event)

a = a.keyCode;
Перезаписали в а код нажатой клавиши, которую взяли из события

if (a in b) {
проверяем есть ли в объекте b ключ a

var c = b[a][0];
объявляем переменную c равную первому элементу массива в объекте b c ключём a

b[c] += b[a][1];
изменяем left или top в b в зависимости от клавиши

d.style[c] = b[c] + "px"
смещаем квадрат

рони 19.12.2013 18:35

tsigel,
почему
Цитата:

Сообщение от tsigel
полу обфусцированный

там что-то ещё можно сократить? )))
научусь имена давать вразумительные - будет несокращённый вариант.
и спасибо что обьяснили мой код

tsigel 19.12.2013 18:37

рони,
Ну как же! Ещё можно удалить переносы на новую строку и пробелы


Цитата:

Сообщение от рони
и спасибо что обьяснили мой код

Незачто

:)


Часовой пояс GMT +3, время: 21:14.