Tôi đang suy nghĩ về việc tạo một trang web với một số sử dụng JavaScript/canvas khá mãnh liệt và tôi đã xem xét Processing.js và có vẻ như với tôi rằng nó sẽ làm cho thao tác canvas dễ dàng hơn nhiều. Có ai biết bất kỳ lý do nào tại sao tôi không nên sử dụng Processing.js? Tôi hiểu rằng các trình duyệt cũ hơn sẽ không thể sử dụng nó, nhưng bây giờ thì không sao.Việc sử dụng Processing.js của John Resig có hợp lý không?
Trả lời
Như đã đề cập, IE không được hỗ trợ bởi Processing.js (bao gồm cả IE8 beta). Tôi cũng đã tìm thấy tệp processing.js hơi chậm về mặt hiệu suất, so với chỉ sử dụng canvas (đặc biệt nếu bạn đang phân tích một chuỗi bằng ngôn ngữ Xử lý, thay vì sử dụng API javascript).
Cá nhân tôi thích API canvas hơn trình bao bọc xử lý vì nó cho phép tôi kiểm soát nhiều hơn. Ví dụ:
Các dây chuyền chế biến() chức năng được thực hiện như thế này (khoảng):
function line (x1, y1, x2, y2) {
context.beginPath();
context.moveTo(x1, y1);
context.lineTo(x2, y2);
context.closePath();
context.stroke();
};
Và bạn muốn sử dụng nó như thế này (giả sử bạn đang sử dụng API javascript tiếp xúc):
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////
Chú ý rằng mỗi dòng() gọi phải mở và đóng một con đường mới, trong khi với các API vải bạn có thể vẽ tất cả các dòng trong một khối beginPath/endPath duy nhất, cải thiện hiệu suất đáng kể:
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();
Nếu bạn đồng ý với nó không hoạt động trong IE7, hãy tiếp tục. Tôi đã có nó làm việc trong Firefox 3. Đó là một cách khéo léo để mang lại hiệu ứng Silverlight/Flash cho trang của bạn.
Linh cảm của tôi là các thư viện như Processing.js sẽ thay đổi hoặc được nâng cấp trên đường dẫn nhanh, vì vậy hãy sẵn sàng chạy khi chúng thực hiện và theo kịp các tính năng mới.
Tôi muốn sử dụng Flash thay thế. Nhiều trình duyệt hơn đã cài đặt Flash, so với số lượng trình duyệt hoạt động với processing.js. Ngoài ra, bạn sẽ nhận được hiệu suất tốt hơn nhiều từ Flash so với sử dụng JavaScript (ít nhất là bây giờ, mặc dù có các dự án trong các công trình để tăng tốc JS rất nhiều, nhưng vẫn còn một số cách nhỏ)
Lý tưởng nhất là Flash, Silverlight, et al tất cả sẽ bị tắt bởi (ít nhất là de-facto) chuẩn hóa nội dung và chức năng trong DOM. –
Nó doesn ' t đơn giản hóa bản vẽ trên canvas của bạn. Những gì nó làm là đơn giản hóa nhiệm vụ của hoạt hình nếu bạn đang sử dụng canvas. Nếu bạn đang thực hiện hoạt ảnh và bạn không quan tâm đến hỗ trợ trình duyệt hoàn chỉnh thì hãy sử dụng Processing.js. Nếu bạn không làm hoạt hình (ví dụ: nếu bạn đang làm biểu đồ hoặc các góc tròn) thì đừng thêm phí trên của Processing.js.
Dù bằng cách nào, tôi khuyên bạn nên tìm hiểu cách sử dụng API canvas trực tiếp. Hiểu về api canvas, đặc biệt là các phép biến đổi, sẽ giúp bạn rất nhiều ngay cả khi bạn đang sử dụng Processing.js.
Hãy thử thực hiện javascript mới p5js p5js.org
Oh và để đáp ứng với câu trả lời của Leo, bạn thực sự không cần phải sử dụng dòng chức năng trong chế biến hoặc p5js, có riêng beingShape và Hàm bePath tương tự như canvas api.
- 1. John Resig của đơn giản lớp và "sử dụng nghiêm ngặt"
- 2. Kết hợp sức mạnh của Processing.js và Web Worker
- 3. IDE cho Processing.js
- 4. Việc sử dụng khung công tác cho một ứng dụng web java đơn giản có hợp lý không?
- 5. Việc sử dụng thích hợp của EnsureChildControls() là gì?
- 6. Sử dụng hợp lý luồng trong C#?
- 7. Processing.js vs. CAKE vs. Raphael.js
- 8. Lợi ích của việc sử dụng Quản lý giao dịch Springs và sử dụng hibernate
- 9. Việc sử dụng @Transactional có vô hiệu hóa quản lý giao dịch mặc định của grails hay không
- 10. Việc sử dụng ứng dụng phù hợp cho iPhone
- 11. Điểm của việc sử dụng GC.AddMemoryPressure với tài nguyên không được quản lý là gì?
- 12. Việc sử dụng tệp cấu hình có tương đương với việc sử dụng hình cầu không?
- 13. Sử dụng WhatsAPI có hợp pháp không?
- 14. Không có trường hợp nào cho (Phân số Int) phát sinh từ việc sử dụng `/ '
- 15. Việc sử dụng gcroot có an toàn không?
- 16. Có thể sử dụng mutex trong trường hợp đa xử lý trên Linux/UNIX không?
- 17. Đây có phải là cách sử dụng hợp lý cho && = trong Ruby không?
- 18. F # có tương đương với việc sử dụng của Haskell không?
- 19. Hiệu suất của việc gọi mã không được quản lý từ mã được quản lý
- 20. Việc xác định một Chuỗi cuối cùng trong Java có hợp lý không?
- 21. Việc sử dụng ngoại lệ của Ogre có phải là cách tốt để sử dụng chúng không?
- 22. Thuật ngữ "monadic" trong J có liên quan đến việc sử dụng Haskell của nó không?
- 23. Làm cách nào để quản lý việc xử lý đối tượng khi tôi sử dụng IoC?
- 24. Có ai đã xử lý.js làm việc trong IE không?
- 25. Việc sử dụng các trường ẩn có thực tế không?
- 26. Mục đích của việc sử dụng CommandType.Tabledirect
- 27. Việc sử dụng mysql của addslashes()
- 28. Việc sử dụng mẫu hòa giải có đề xuất không?
- 29. Mục đích của việc sử dụng FrameworkElementFactory
- 30. Việc sử dụng getattr của python có thực sự không tốt?
Bạn đã xem các thư viện canvas Javascript thuần túy như [Fabric.js] (http://fabricjs.com) chưa? – kangax