2016-04-08 7 views
0

`に` paperscript`を変換します。それは私にエラーを与えるPaper.js - 私はこの<code>paperscript</code>変更しようとしています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(); 
} 
} 

:ようスタンドアロンjavascript

<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> 

を:

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

ここでtoolとは何ですか?私はそれを宣言する必要があるかもしれないことを理解しています。どのようにこれを解決するためのアイデア?

+0

ツール 'undefined' ...'しようとされて

var tool1 = new paper.Tool(); var handle; var myPath; myPath.fullySelected = true; tool1.onMouseDown = function(event) { handle = null; // Do a hit test on path for handles: var hitResult = myPath.hitTest(event.point, { handles: true, fill: true, stroke: true, segments: true, tolerance: 2 }); if (hitResult) { if (hitResult.type == 'handle-in') { handle = hitResult.segment.handleIn; } else if (hitResult.type == 'segment') { handle = hitResult.segment.point; } else if (hitResult.type == 'handle-out') { handle = hitResult.segment.handleOut; } } } 

はあなたがここでのツールの詳細情報を見つけることができVARツール= {}; 'それはツールではないと思われます。 – Pogrindis

+0

@ Pogrindisはそれを試しました。同じエラー。 – sooon

答えて

1

あなたはdocumentationに概説されているようグローバルスコープを作成する必要があります。

paper.install(window); 

そして、グローバルDEFSに乗ります。 :

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が見つかります。

同じことが、私はJavaScriptで直接Paper.jsを使用する場合、私はこのよう紙のオブジェクトを作成することを好むTool()

0

に適用されますので、ところで、あなたが実際すでに、Path()正しくこれをやった:

var canvas = document.getElementById('canvas-line'); 
paper.setup(canvas); 
// and then if you want to create some Paper.js object prefix it's name with paper 
var myPath = new paper.Path(); 

ツールを使用する場合は、新しい用紙でツールを減速させる必要があります。ツール();たとえば あなたはパスがクリックされたかどうかを確認する場合:http://paperjs.org/reference/tool/