我正在考慮製作一個網站,其中包含一些相當強烈的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微模板錯誤
- 3. John Resig Learning高級JavaScript的JavaScript#45
- 4. 是John Resig的「簡單的JavaScript繼承」還好嗎?
- 5. 在構造函數中使用「new」,John Resig`s#35
- 6. John Resig在本視頻中使用了什麼編輯器?
- 7. 如何使用John Resig JavaScript Micro-Templating引擎?
- 8. 如何在john resig的advance中定義'assert'javascript教程
- 9. 修改John Resig的microtemplating引擎以取代「新趣」或「eval」
- 10. 有人可以解釋John Resig的pretty.js JavaScript是如何工作的嗎?
- 11. 什麼是動態編碼評價作爲由John Resig的提到
- 12. JavaScript擴展原型#81來自John Resig學習高級JavaScript
- 13. 是端口從處理到processing.js支持的Java集合?
- 14. 來自John Resig#62和#63的JavaScript破碎的閉包和包裝函數
- 15. Railsroutes,/ john而不是/ users/1或/ users/1-john或/ users/john
- 16. 使用ObjectController和ArrayController是否合理?
- 17. toxiclibs庫是否與processing.js兼容?
- 18. 如何使Solr不區分'John'和'JOHN'
- 19. 從處理遷移到processing.js
- 20. String.ToString是否有合理的用途?
- 21. StyleCop SA1124 DoNotUseRegions是否合理?
- 22. 是否有使用processing.js的可視化麥克風輸入的代碼示例?
- 23. 在processing.js中使用蒙版
- 24. API Params - {person:{name:'John'}} vs {name:'John'}
- 25. URL中的點是否被SE處理爲空格? /mr.-john-smith/是否有雙重空間?
- 26. 用於Processing.js的IDE
- 27. git子模塊是否合理可用?
- 28. 我如何搜索lucene for「John J」,並讓像John Jameson這樣的人不僅僅是John的人?
- 29. 創建大量的gensyms是否合理?
- 30. 使用計算節點上的所有核心是否合理?
你看過像[Fabric.js](http://fabricjs.com)這樣純的Javascript畫布庫嗎? – kangax 2012-07-18 09:07:59