paperjs:为什么onFrame事件在onKeyDown事件中不起作用?

时间:2017-03-11 11:21:00

标签: javascript events paperjs

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

以下代码有效,但上述内容并非如此。为什么onFrame事件在用作语句时不会触发?

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

另外,在下面的代码中,如果我使用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);
    }
} 

1 个答案:

答案 0 :(得分:1)

很抱歉,晚会很晚,因为我和你发帖的最后一部分有同样的问题,但我发现了。

在上一段代码中,使用circle.onFrame代替view.onFrame,以便创建的圈子继续制作动画,您仍然可以在每次onKeyDown事件后创建新圈子。

至于第一部分,我不知道为什么,但在找到你的问题之前我也先尝试过,所以谢谢。