论文 js 成 javascript
paper js into javascript
下面是我试图在圆网格上获得色调 属性 的代码。
var circles = [];
for(var i=20 ; i<=1500 ; i+=100){
for(var j=40 ; j<=600 ; j+=110){
var newCircle = new Path.Circle(new Point(i, j), 20);
newCircle.fillColor = 'red';
circles.push(newCircle);
}
}
function onFrame(event){
for(var i=0 ; i<circles.length ; i++ ){
circles[i].fillColor.hue += 1;
}
}
这是代码。现在我正在尝试使用我在单独的 JS 文件中创建的随机颜色函数为每个圆圈赋予不同的颜色,但是像 "num" 这样的变量在那个 js file.I 中无法访问 link他们。
这是 link 代码笔:https://codepen.io/akashyap/pen/qMgpGQ
我无法理解 :
的“直接将 paperscript 与 javascript 一起使用”部分
http://paperjs.org/tutorials/getting-started/using-javascript-directly/
您运行遇到了时间问题。当你的普通 JS 运行s 时,circles
还没有定义。那是因为您的论文脚本位于 <script type="text/paperscript">
元素内。浏览器本身不支持此功能,因此不会立即 运行。相反,在您加载 paper.js
一段时间后,它最终会读取您的脚本元素并对其进行解释。
您需要确保在定义之前不要尝试访问 circles
。
如果无法预测您的 paperscript 何时准备就绪,您可以使用 callback 在 paperscript 运行 时通知外部 JS。例如,如果您将此添加到您的论文中:
if (window.onCirclesReady)
window.onCirclesReady(circles);
...你可以把你的 JS 包装成这样:
window.onCirclesReady = circles => {
// Code here
};
这解决了两个问题。首先,你知道你的 JS 代码不会 运行 直到 paperscript 有 运行。其次,您正在传递 circles
数组,因此您不必使用全局变量来使其可访问。您可以根据需要扩展回调以传递其他数据。
下面是我试图在圆网格上获得色调 属性 的代码。
var circles = [];
for(var i=20 ; i<=1500 ; i+=100){
for(var j=40 ; j<=600 ; j+=110){
var newCircle = new Path.Circle(new Point(i, j), 20);
newCircle.fillColor = 'red';
circles.push(newCircle);
}
}
function onFrame(event){
for(var i=0 ; i<circles.length ; i++ ){
circles[i].fillColor.hue += 1;
}
}
这是代码。现在我正在尝试使用我在单独的 JS 文件中创建的随机颜色函数为每个圆圈赋予不同的颜色,但是像 "num" 这样的变量在那个 js file.I 中无法访问 link他们。
这是 link 代码笔:https://codepen.io/akashyap/pen/qMgpGQ
我无法理解 :
的“直接将 paperscript 与 javascript 一起使用”部分http://paperjs.org/tutorials/getting-started/using-javascript-directly/
您运行遇到了时间问题。当你的普通 JS 运行s 时,circles
还没有定义。那是因为您的论文脚本位于 <script type="text/paperscript">
元素内。浏览器本身不支持此功能,因此不会立即 运行。相反,在您加载 paper.js
一段时间后,它最终会读取您的脚本元素并对其进行解释。
您需要确保在定义之前不要尝试访问 circles
。
如果无法预测您的 paperscript 何时准备就绪,您可以使用 callback 在 paperscript 运行 时通知外部 JS。例如,如果您将此添加到您的论文中:
if (window.onCirclesReady)
window.onCirclesReady(circles);
...你可以把你的 JS 包装成这样:
window.onCirclesReady = circles => {
// Code here
};
这解决了两个问题。首先,你知道你的 JS 代码不会 运行 直到 paperscript 有 运行。其次,您正在传递 circles
数组,因此您不必使用全局变量来使其可访问。您可以根据需要扩展回调以传递其他数据。