Код работает, когда значение жестко задано, но не работает, когда оно берется из DOM с помощью getElementByID ("x") - PullRequest
1 голос
/ 09 мая 2020

Итак, это моя функция, с которой у меня возникла проблема, она использует библиотеку p5. js.

function SprayCanTool(){

    this.name = "sprayCanTool";
    this.icon = "assets/sprayCan.jpg";

     var spread ;
     var points = 13 ;


    this.draw = function(){
        var r = random(5,10);
        spread =  document.getElementById("size-slider").value;
        if(mouseIsPressed){


            for(var i = 0; i < points; i++){
                point(random(mouseX-spread, mouseX + spread),random(mouseY-spread, mouseY+spread));
            }
        }


    };

    this.populateOptions = function(){
        select(".options").html( " <label>Size of Spray: </label> <input id='size-slider' type='range' min='10' max='200' step='1' value='10'> ");
    }
}

Как показано выше, код не работает, я не могу отрегулировать размер спрея, и спрей просто не отображается на холсте.

Как показано выше минимальный разброс значений может быть равен 10. Когда я добавляю console.log(spread,points) в метод рисования, ожидаемое 10,13 выводится в консоль. Когда я жестко кодирую значение как любое число и удаляю часть spread = document.getElementById("size-slider").value;, код работает так, как я предполагал (кроме, конечно, я не могу настроить размер с помощью ползунка)

Кто-нибудь знает что вызывает эту проблему?

1 Ответ

1 голос
/ 09 мая 2020

Ладно, забудь, моя головоломка разрешилась сама собой. Я искал не в том месте, я получаю сообщение об ошибке, потому что я пытался добавить целое число с плавающей запятой и с javascript по какой-то причине, которая складывает их вместе, как будто они обе строки.

У меня есть удалось исправить мою проблему, заменив:

 point(random(mouseX-spread, mouseX + spread),random(mouseY-spread, mouseY+spread));

на

 point(random(int(mouseX)-int(spread), int(mouseX) + int(spread)),random(int(mouseY)-int(spread), int(mouseY)+int(spread)))
...