2012-11-02 15 views
10

Tôi đang sử dụng Fabric.js và tôi đã tạo đối tượng canvas vải ở một nơi.Lấy đối tượng canvas trong khi sử dụng vải js

var x = new fabric.Canvas("mycanvas"); 

Bây giờ ở một nơi khác, tôi muốn truy cập đối tượng này khi không có 'x'. Vậy làm thế nào tôi có thể nhận được cùng một đối tượng canvas vải.

Tôi không muốn thay đổi phạm vi của x hoặc chuyển x thành arg.

Ngoài ra, làm thế nào để có được toDataURL từ đối tượng canvas vải?

+0

Nếu bạn không cung cấp tham chiếu, nó sẽ không thể truy cập được. Đó là cách phạm vi hoạt động. – alex

Trả lời

18

Giả sử rằng mycanvas là ID của phần tử Canvas, bạn có thể lưu trữ các tham chiếu đến các đối tượng vải trên các yếu tố Canvas bản thân:

var x = new fabric.Canvas("mycanvas"); 
document.getElementById("mycanvas").fabric = x; 

Sau đó bạn có thể lấy đối tượng mà bất cứ lúc nào bạn muốn với:

var y = document.getElementById("mycanvas").fabric; 
var url = y.toDataURL("png", 1); 
+0

y là đối tượng canvas vải, do đó bạn sẽ cần phải sử dụng toDataURL khác nhau [xem này] (http://fabricjs.com/docs/fabric.Canvas.html#toDataURL) – Rotem