Tôi đang sử dụng một số javascript để cho phép người dùng tự động tải một bản phác thảo trên nhấp chuột vào một yếu tố canvas sử dụng:động "dỡ bỏ" một phác thảo Processing JS từ vải
Processing.loadSketchFromSources ('canvas_id', [ 'sketch.pde']);
Nếu tôi gọi Processing.loadSketchFromSources (...) lần thứ hai (hoặc thứ ba ...), nó sẽ tải tệp .pde thứ hai (hoặc thứ ba ...) lên canvas, đó là những gì tôi mong chờ.
Tôi muốn người dùng có thể nhấp vào một liên kết khác để tải một bản phác thảo khác, dỡ bỏ hiệu quả bản vẽ trước đó. Có một phương pháp tôi có thể gọi (hoặc một kỹ thuật tôi có thể sử dụng) để kiểm tra nếu chế biến có một phác thảo đang chạy, và nếu như vậy, nói với nó để dỡ bỏ nó đầu tiên?
Có một số loại phương thức Processing.unloadSketch() mà tôi đang xem không? Tôi chỉ đơn giản có thể thả đối tượng canvas DOM và tạo lại nó, nhưng (1) có vẻ như sử dụng một cái búa khi tôi cần một cây kim, và (2) nó kết quả trong một màn hình nhấp nháy mà tôi muốn tránh.
Tôi không phải là chuyên gia JS, nhưng tôi đã cố gắng hết sức để xem qua nguồn processing.js để xem những chức năng nào khác có thể tồn tại, nhưng tôi đánh vào tường. Tôi nghĩ có lẽ tôi có thể nhìn vào Processing.Sketches.length để xem nếu một cái gì đó được tải đã, nhưng chỉ đơn giản là pop'ing nó ra khỏi mảng dường như không làm việc (không nghĩ rằng nó sẽ).
Tôi đang sử dụng ProcessingJS 1.3.6.
Cảm ơn bạn đã trả lời ..nó đã cho tôi 75% ở đó ... Có hai "chế độ" của việc sử dụng chế biến trong Javascript: (1) tải lên một tập tin .pde xử lý động, hoặc (2) viết kịch bản xử lý của bạn trong JS. 'Lỗ hổng gây tử vong' là **. LoadSketchFromSources() ** dường như không trả về một tay cầm có thể sử dụng được. Thay vào đó, bạn phải xem xét ** Processing.instances.length ** để xác định rằng hiện đang chạy. Nếu vậy, bạn có thể gọi ** Processing.instances [0] .exit() ** ... với điều kiện chỉ có một tập lệnh đang chạy. (Xin lỗi, tôi không thể +1 câu trả lời của bạn - Tôi chưa có đủ điểm). –