Dom操作関数

dom操作ライブラリをインポートすることで、スライダーやチェックボックスといったGUI部品 を設置でき、画面からプログラム内の変数を操作することができます。
ライブラリのインポートは、p5.jsの読み込み以降の行に次のタグを挿入します。


<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/addons/p5.dom.min.js"></script>
        

スライダー

スライダーとは、ある範囲内の数値を選択することのできる部品です。
動画再生時の音量や再生位置の選択などに使われています。

createSlider

スライダーオブジェクトを生成する関数です。


slider = createSlider(min, max, [value], [step])

min: 最小値
max: 最大値
value: デフォルト値。省略可
step: 1メモリの増減幅。省略可

スライダーオブジェクトが返ってくるので、変数へ代入して使う。
          

position

スライダーの表示位置を指定します。


slider.position(x, y);

slider: createSliderで作成したスライダーオブジェクト
x: 表示位置のx座標
y: 表示位置のy座標
          

value

スライダーの現在の値を取得します。


slider.value();

slider: createSliderで作成したスライダーオブジェクト
          

sample


var slider;
function setup(){
  createCanvas(250,200);
  slider = createSlider(0, 255);
  slider.position(10, 210);
}
function draw(){
  background(slider.value());
}
              

チェックボックス

チェックボックスは、チェックを付けたり外したりして、オンオフを切り替える部品です。

createCheckbox

チェックボックオブジェクトを生成する関数です。


chk = createCheckbox(label, value);

label: 表示名
value: trueを入れるとデフォルトでチェックが入った状態になり、
falseを入れるとデフォルトでチェックが入っていない状態になる。省略可

チェックボックスオブジェクトが返ってくるので、変数へ代入して使う。
          

position

チェックボックスの表示位置を指定します。


chk.position(x, y);

chk: createCheckboxで作成したチェックボックスオブジェクト
x: 表示位置のx座標
y: 表示位置のy座標
          

changed

チェックボックスの状態が切り替わった時の動作を指定します。
引数には定義済みの関数名を渡します。すると、チェックボックスが変化したときに、引数の関数が実行されます。


chk.changed(fnc);

fnc: 関数名
chk: createCheckboxで作成したチェックボックスオブジェクト
          

sample


var chk;
function setup(){
  createCanvas(250,200);
  background(50);
  chk = createCheckbox('bg color', false);
  chk.position(80, 210);
  chk.changed(checkedEvent);
}
function checkedEvent(){
  // thisはチェックボックス自身を指す
  if(this.checked()){
    background(0);
  }else{
    background(50);
  }
}
              

セレクトボックス

セレクトボックスは、ドロップダウンで表示される複数の選択肢から一つを選択する部品です。

createSelect

セレクトボックオブジェクトを生成する関数です。


sel = createSelect();

セレクトボックスオブジェクトが返ってくるので、変数へ代入して使う。
          

position

セレクトボックスの表示位置を指定します。


sel.position(x, y);

chk: createSelectで作成したセレクトボックスオブジェクト
x: 表示位置のx座標
y: 表示位置のy座標
          

option

選択肢を登録します。


sel.option(item);

item: 選択肢を文字列で指定します。
sel: createSelectで作成したセレクトボックスオブジェクト
          

changed

チェックボックスの状態が切り替わった時の動作を指定します。
引数には定義済みの関数名を渡します。すると、チェックボックスが変化したときに、引数の関数が実行されます。


sel.changed(fnc);

fnc: 関数名
sel: createSelectで作成したセレクトボックスオブジェクト
          

value

選択した選択肢の値(optionで設定した文字)を受け取ります。


sel.value();

sel: createSelectで作成したセレクトボックスオブジェクト
          

sample


var sel;
function setup(){
  createCanvas(250,200);
  background(0);
  sel = createSelect();
  sel.position(20, 10);
  sel.option("black");
  sel.option("red");
  sel.option("blue");
  sel.option("green");
  sel.changed(selectedEvent);
}
function selectedEvent(){
  background(sel.value());
}
              

ボタン

マウスでクリック可能なボタンを設置します。
ボタンを押すことで実行される関数を設定することもできます。

createButton

ボタンオブジェクトを生成する関数です。


btn = createButton(label, [value]);

label: ボタンに表示するラベル
value: btn.value()で取得することのできる値

ボタンオブジェクトが返ってくるので、変数へ代入して使う。
          

position

ボタンの表示位置を指定します。


btn.position(x, y);

btn: createButtonで作成したボタンオブジェクト
x: 表示位置のx座標
y: 表示位置のy座標
          

value

ボタン作成時に設定した値を取得します。


btn.value();

btn: createButtonで作成したボタンオブジェクト
          

sample


var btn;
var currentColor = 120;
function setup() {
  createCanvas(250,200);
  background(currentColor);
  btn = createButton("click me", currentColor);
  btn.position(10, 210);
  btn.mousePressed(btnClicked);
}

function btnClicked(){
  currentColor = btn.value() - currentColor;
  background(currentColor);
}