Search code examples
paperjs

How can I stop and start view.onFrame


I'm pretty new to paperjs. My animation is working for this I use the following javascript:

view.onFrame = function () {
    drawYellowBlock();
}

The function drawYellowBlock draws a yellow block but this animated. When the animation is done I want to stop view.onFrame because I have the feeling it is unnecessary to keep it running while nothing is happening any more. Then when a button is clicked I should be able to activate the onFrame again.

Is this possible and necessary?

So I want my draw function to be something like this:

var scale = 0;

function drawYellowBlock() {
    scale = scale + 0.1

    //animate block
    if(scale < = 1){
       //make block grow
    }
    else{
       //stop onFrame
    }

$('button').click(function(){
    scale = 0;
    //start onFrame and Animation
});

Solution

  • You can do something like this

    function draw () {
       drawYellowBlock();
       view.onFrame = undefined
    }
    view.onFrame = draw
    
    function onclickHandler(){ 
       view.onFrame = draw
    }
    

    just remove the function reference from the onFrame handler once its done and append the function back once the button is clicked