2017-03-11 4 views
0
<script type="text/paperscript" canvas="paper"> 
    function onKeyDown(event) { 
     alert('key pressed');   
     function onFrame(event) { 
      console.log('frames running'); 
     } 
    } 
</script> 

次のコードは機能しますが、上記のコードは機能しません。 onFrameイベントがステートメントとして使用されたときにトリガーされないのはなぜですか?paperjs:なぜonFrameイベントは、onKeyDownイベントの内部にあるときに機能しませんか?

function onKeyDown(event) { 
    alert('key pressed');   
    view.onFrame = function(event) { //This line is makes a difference 
     console.log('frames running'); 
    } 
} 

Iはview.onFrameメソッドを使用する場合も、以下のコードでは、円は縮小が、別のキーが押されたときに突然停止します。

function onKeyDown(event) { 
    var circle = new Path.Circle((view.size * Point.random()), 50); 
    circle.fillColor = 'purple'; 
    view.onFrame = function(event) { 
     circle.scale(.9); 
    } 
} 

答えて

0

申し訳ありませんが、後半に相手に「原因私はあなたのポストの最後の部分と同じ質問をしましたが、私はそれを考え出しました。

最後のコードでは、view.onFrameの代わりにcircle.onFrameを使用すると、作成された円はアニメーション化され続け、onKeyDownイベントごとに新しいサークルを作成することができます。

最初の部分については、理由はわかりませんが、最初にあなたの質問を見つける前に試しました。ありがとうございます。

関連する問題