0

私はjavascriptが初めてで、小さなプロジェクトのようなPatatapを書こうとしています。

アニメーションには Paper.js を使用し、イベント リスナーにはonKeyUp メソッドを使用して、ボタンを押したときに画像が表示されるようにしています。このコードは正常に動作しますが、このメソッドがどのように機能するのかわかりません。内部で何をしているのでしょうか? その関数をもう一度定義していますか? 中括弧内で何を定義していますか? function onKeyUp(event){ ..その関数を定義しますか??.. }

(「onFrame()」メソッドと同じ問題があります)。

//importing paper.js and howler.js
//CREATING AN OBJECT OF LETTERS
 var keyData={
  q: {
    sound: new Howl({
      src: ['sounds/bubbles.mp3']
      }),
    color: '#1abc9c'
    },
  w: {
     sound: new Howl({
       src: ['sounds/clay.mp3']
     }),
     color: '#2ecc71'
   }  //OTHER LETTERS HERE..
 };

//CREATING CIRCLES ON THE SCREEN
  var circles=[];
  function onKeyUp(event) {
    if (keyData[event.key]){
      var maxPoint = new Point(view.size.width,view.size.height);
      var randomPoint = Point.random();
      var point = randomPoint * maxPoint;
      newCircle = new Path.Circle(point, 100);
      newCircle.fillColor=keyData[event.key].color;
      circles.push(newCircle);
      keyData[event.key]['sound'].play()			
    }
  };

//MAKE CIRCLES DISAPPEAR
 function onFrame(event) {
   for(var i=0; i< circles.length;i++){
  	circles[i].fillColor.hue += 1;
	circles[i].scale(0.99);
	if(circles[i].area < 1){
	  circles[i].remove();
	  circles.splice(i, 1);
	  console.log(circles);
	}
   }
 };
強いテキスト

AdamW さん、ご回答ありがとうございます。

私が抱えている問題は、上記の行に関するものです。それは私には意味がありません、それは私がやっているようなものです

// ON PAPER.JS
function onKeyUp(event){
  //do stuff..
};

// ON MY PROJECT
function onKeyUp(event){
  //do other different stuff..
};

しかし、この方法では、Paper.js に記述された onKeyUp() メソッドのみを「クリア」し、onKeyUp() と呼ばれる新しい関数、つまりポリモーフィズムを優先します。それで、なぜ私はそれをするのですか?onFrame() メソッドについても同様です。

4

1 に答える 1

0

あなたがどのような説明を求めているのかわからず、私は Paper.js に精通していません。

一般的に、関数の本体は条件付きでラップされます。

if (keyData[event.key]) {
  // do stuff
}

条件はパラメーターkeyからプロパティを取得し、その名前のプロパティがあるeventかどうかを確認します。keyDataコードを見ると、これは「q」または「w」のキー値のようです。そのプロパティが見つかった場合は、「do stuff」セクションを実行します。それ以外の場合はスキップします。

私には「何かをする」セクションのように見えます

  1. 円の中心点を選択します
  2. その点に半径 100 の円を作成します
  3. 円を色で塗りつぶします
  4. 「circles」という既存の配列に円を追加します
  5. 'keyData' からエントリを選択し、その 'sound' プロパティを取得して、'play' メソッドを呼び出します。「サウンド」プロパティは「ハウル」オブジェクトであり、ハウルには再生メソッドがあると想定しています。

要するに、それは色付きのディスクとノイズを作ります。

于 2016-11-26T01:58:37.640 に答える