javascript - Paper.js - 将 `paperscript` 转换为 `javascript`

标签 javascript paperjs

我正在尝试更改此paperscript:

<script type="text/paperscript" canvas="canvas-1">
tool.minDistance = 10;
tool.maxDistance = 45;

var path;

function onMouseDown(event) {
    path = new Path();
    path.fillColor = new Color({ hue: Math.random() * 360, saturation: 1, brightness: 1 });

    path.add(event.point);
}

function onMouseDrag(event) {
    var step = event.delta / 2;
    step.angle += 90;

    var top = event.middlePoint + step;
    var bottom = event.middlePoint - step;

    path.add(top);
    path.insert(0, bottom);
    path.smooth();
}

function onMouseUp(event) {
    path.add(event.point);
    path.closed = true;
    path.smooth();
}
</script>

独立的javascript,例如:

paper.install(window);


window.onload = function() {
paper.setup('myCanvas');

tool.minDistance = 10;
tool.maxDistance = 45;

var path;

function onMouseDown(event) {
    path = new Path();
    path.fillColor = {
        hue: Math.random() * 360,
        saturation: 1,
        brightness: 1
    };

    path.add(event.point);
}

function onMouseDrag(event) {
    var step = event.delta / 2;
    step.angle += 90;

    var top = event.middlePoint + step;
    var bottom = event.middlePoint - step;

    path.add(top);
    path.insert(0, bottom);
    path.smooth();
}

function onMouseUp(event) {
    path.add(event.point);
    path.closed = true;
    path.smooth();
}
}

它给了我一个错误:

TypeError: undefined is not an object (evaluating 'tool.minDistance = 10')

这里的工具是什么?我知道我可能需要先声明它才能使用它。知道如何解决这个问题吗?

最佳答案

您需要按照 documentation 中的概述设置全局范围。 :

paper.install(window);

然后继续进行全局定义。 :

window.onload = function() {
        // Get a reference to the canvas object
        paper.setup('myCanvas');
        // In your case create tools 
        var tool = new Tool();
        tool.minDistance = 10;
        tool.maxDistance = 45;

然后像往常一样继续,这将设置您的工具。更多信息请参见 here .

顺便说一句,您实际上已经对 Path() 正确执行了此操作,因此这同样适用于 Tool()

关于javascript - Paper.js - 将 `paperscript` 转换为 `javascript`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36498580/

相关文章:

javascript - 杂耍异步 - LearnYouNode - 立即调用函数表达式

javascript - 如何在 paperjs 中滚动大文本

javascript - 从 SVG/paper js 生成 PDF

javascript - Paper.js 动画路径点击时移动

javascript - .map() 未定义,即使我传递了一个数组

javascript - 制作全局函数来访问vuex store

javascript - 使用ajax删除帖子后淡出整个div

javascript - 在 Bootstrap 中以模式打开放大图像

html5-canvas - 使用 Paper.js 在调整大小时重绘

javascript - 将 paper.js 集成到 angular.js 中