我正在考虑制作一个网站,其中包含一些相当强烈的JavaScript/canvas使用情况,我一直在寻找Processing.js,在我看来,它会使画布的操作更容易。有没有人知道我为什么不应该使用Processing.js?我知道旧版浏览器将无法使用它,但现在没关系。使用John Resig的Processing.js是否合理?
回答
如前所述,Processing.js不支持IE(包括IE8 beta)。与使用画布相比,我还发现processing.js在性能方面有点慢(特别是如果使用Processing语言解析字符串,而不是使用JavaScript API)。
我个人比较喜欢在处理包装上使用canvas API,因为它给了我更多的控制权。例如:
的加工生产线()函数是这样实现的(大约):
function line (x1, y1, x2, y2) {
context.beginPath();
context.moveTo(x1, y1);
context.lineTo(x2, y2);
context.closePath();
context.stroke();
};
而且你会使用这样的(假设你使用的JavaScript暴露的API):
var p = Processing("canvas")
p.stroke(255)
////Draw lines...///
p.line(0,0,10,10)
p.line(10,10,20,10)
//...and so on
p.line(100,100,200,200)
////End lines////
注意,每一行()调用必须打开和关闭了一条新路,而与画布API,您可以绘制一个调用beginPath/endPath块内的所有线路,显著提高性能:
context.strokeStyle = "#fff";
context.beginPath();
////Draw lines...///
context.moveTo(0, 0);
context.lineTo(10, 10);
context.lineTo(20, 10);
//...so on
context.lineTo(200, 200);
////End lines...///
context.closePath();
context.stroke();
当我尝试了这一点时,许多示例在Chrome,Safari中也不起作用。这应该是固定的。 – Nils 2008-12-11 11:31:44
如果你确定它不能在IE7中工作,那就去做吧。我已经在Firefox 3中工作了。这是一种将Silverlight/Flash效果带入您的页面的流畅方式。
我的预感是像Processing.js这样的库会在快速通道上更改或升级,因此准备好在它们执行时运行并跟上新功能。
我会说用闪光代替。安装Flash的浏览器数量多于使用processing.js的浏览器数量。另外,与使用JavaScript相比,你会从Flash中获得更好的性能(至少目前为止,尽管有很多项目可以加速JS的速度,但还有一些方法可行)
理想情况下,Silverlight等应该全部被(至少事实上)标准化的DOM内容和功能所杀死。 – 2009-07-19 13:06:20
它没有' t可以简化您的画布上的绘图。如果您使用画布,它所做的就是简化动画任务。如果你正在做动画,并且你不关心完整的浏览器支持,那么使用Processing.js。如果你没有做动画(如果你正在制作图表或圆角),那么不要增加Processing.js的开销。
无论哪种方式,我建议您学习如何直接使用画布API。理解canvas api,特别是转换,即使使用Processing.js也会对你有很大的帮助。
尝试新的JavaScript实现p5js p5js.org
哦,响应狮子座的回答,你居然没有用在处理或p5js的线功能,有单独beingShape和beingPath的功能类似于canvas api。
- 1. 使用John Resig扩展数组扩展
- 2. John Resig Learning高级JavaScript的JavaScript#45
- 3. John Resig在本视频中使用了什么编辑器?
- 4. 如何使用John Resig JavaScript Micro-Templating引擎?
- 5. 在构造函数中使用“new”,John Resig`s#35
- 6. 修改John Resig的microtemplating引擎以取代“新趣”或“eval”
- 7. 有人可以解释John Resig的pretty.js JavaScript是如何工作的吗?
- 8. JavaScript扩展原型#81来自John Resig学习高级JavaScript
- 9. 来自John Resig#62和#63的JavaScript破碎的闭包和包装函数
- 10. Railsroutes,/ john而不是/ users/1或/ users/1-john或/ users/john
- 11. toxiclibs库是否与processing.js兼容?
- 12. 如何使Solr不区分'John'和'JOHN'
- 13. 从处理迁移到processing.js
- 14. StyleCop SA1124 DoNotUseRegions是否合理?
- 15. 在processing.js中使用蒙版
- 16. 用于Processing.js的IDE
- 17. git子模块是否合理可用?
- 18. 我如何搜索lucene for“John J”,并让像John Jameson这样的人不仅仅是John的人?
- 19. 创建大量的gensyms是否合理?
- 20. 对Spring的JdbcTemplate使用PersistenceExceptionTranslationPostProcessor是否合理?
- 21. 使用计算节点上的所有核心是否合理?
- 22. 使用带有processing.js的jQuery滑块
- 23. 使用草图作为背景的processing.js
- 24. 如何使用jQuery的getScript运行processing.js
- 25. processing.js loadImage()
- 26. Resig高级Javascript p#43
- 27. 技术上是否可行?使用Dart搭配Lift是否合理?
- 28. 的jQuery/processing.js - 从JavaScript调用/ jQuery的一个processing.js功能
- 29. 在使用java,javascript和使用processing.js运行嵌入时处理的差异
- 30. 定义重复的ItemMetadata是否合理?
你看过像[Fabric.js](http://fabricjs.com)这样纯的Javascript画布库吗? – kangax 2012-07-18 09:07:59