2016-08-16 5 views
0

Я студент 6 класса и работаю над научным заданием с использованием processing.js.Раскрывающееся меню in processing.js

пользователь вводит информацию (о вулканическом извержении) и снабжена выходом некоторой информации об этом извержении (например, сколько жертв было)

Сейчас я работаю на странице ввода - в частности раскрывающееся меню, которое выбирает тип лавы.

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

Вот фрагмент кода, который рисует меню:

//text boxes---------- 
rect(95, 30, 66, 22); 
rect(95, 65, 66, 22); 

fill(255, 255, 255); 
textSize(16); 

text("ash spread", 5, 47); 

text("lava type", 5, 83); 

    var draw = function() { 

      if (mouseIsPressed && mouseX > 95 && mouseX < 161 && mouseY > 65 && mouseY < 87) { 
      ltDropDown = true; 
      } 

     if (ltDropDown === true) { 
      fill(0, 0, 0); 

      rect(95, 87, 66, 22); 
      rect(95, 109, 66, 22); 
      rect(95, 131, 66, 22); 
      rect(95, 153, 66, 22); 

      fill(255, 255, 255); 
      textSize(15); 

      text("Basaltic", 100, 92, 66, 22); 
      text("Andesitic", 100, 114, 66, 22); 
      text("Dacitic", 100, 136, 66, 22); 
      text("Rhyolitic", 100, 158, 66, 22); 
     } 

      if (mouseIsPressed && ltDropDown === true) { 
      ltDropDown = false; 
      } 
     //-------------------------------------- 

ответ

0

В будущем, вы должны действительно попытаться обеспечить MCVE. Мы должны иметь возможность копировать и вставлять код в наши собственные машины, чтобы видеть то же, что и вы. Вы также можете рассмотреть возможность размещения JSFiddle. Трудно помочь, если мы не сможем запустить ваш код, поэтому постарайтесь облегчить нам помощь!

Но из кода, который вы опубликовали, я думаю, что вижу проблему: когда вы когда-нибудь снимаете раскрывающееся меню?

Даже после того, как вы установили ltDropDown на номер false, вы больше ничего не рисуете. Таким образом, выпадающее меню, которое вы уже нарисовали, просто останется там.

Возможно, вы думаете, что обработка автоматически очищает холст в каждом кадре, но это не так. Если вы хотите это сделать, вам нужно вызвать функцию background() в начале каждого вызова функции draw().

Дополнительная информация может быть найдена в the reference.

PS: Я предполагаю, что это домашнее задание, и вы должны использовать Обработку для выпадающего списка, но если это не так, то вы можете использовать чистый JavaScript для создания выпадающего окна HTML вместо этого. Это будет намного проще, чем делать это самостоятельно, если только домашнее задание не будет сделано в первую очередь.