所以,我想有两个画布元素,每个都有自己的paperscript,并在每个控制中同时某些功能的外部按钮创建一个项目。
Paperscript下的文件下,它说:
请注意:当在一个页面中包含多个PaperScript,每个脚本将运行>在自己的范围内,不会看到声明的对象和函数>其它。 对于PaperScript与其他PaperScript或> JavaScript代码进行通信,请参阅有关PaperScript互操作性的教程。
...因为该教程如下这是不幸的:
即将很快!
我已经得到了在这个过程中卡住非常快。 我试图把功能全球范围内,从他们的画布外的呼唤他们,看到他们错了画布上打印。 我试着通过模块导出函数,它似乎运行功能(?!?!)。 而最坏的情况是“paper.projects”的对象是一个(!)在这项目中,第一画布的数组。
所以我难倒。
有人知道怎么做吗?
编辑:所以显然有这个答案 ,但我不知道怎么说让我能够调用函数在全球范围内脚本PaperScript范围。
这似乎只是一个脚本调用全局函数在PaperScope,如果我试图让外界按钮做的事情不为我工作。
显然,我失去了一些东西。
第二个编辑:我曾与各种全球性的功能,无论是在window.global或只是自己与没有变种声明坐...但似乎发生的是,当我打电话,我已经定义了一个函数,也就是说,作为出场左右:
globals.makecircle = function () {
var o = new Path.Circle({
radius: 50,
center: new Point (200,200)
})
}
在主要适用范围,它只是一旦在错误的窗口中正确的窗口中运行。 也有是一个令人难以置信的延迟运行之前,我想不通。
第三编辑:为清楚。
我已经firstcanvas.js
连接到canvas1
在我的HTML,我有secondcanvas.js
连接到canvas2
。 两者都为paperscript类型引用,如:
<script type="text/paperscript" src="scripts/firstcanvas.js" canvas="canvas1"></script>
<script type="text/paperscript" src="scripts/secondcanvas.js" canvas="canvas2"></script>
我创建window.globals
对象作为尔格建议。 我把它从一个按钮main.js,如:
window.globals = {}
`$('document').ready($('#dfs').on('click', window.globals.makecircle))`
我这个函数添加到全局firstcanvas.js
如上。
如果说我最近点击canvas2,点击与按钮id='DFS'
将导致函数运行,超延迟,在canvas2。
而paper.projects
没有列出这两个项目,所以我不能使用activate()
函数。