2012-02-19 46 views
5

Kể từ khi vẽ canvas trong GWT đã được khắp nơi trên bản đồ, hãy để tôi được rõ ràng và nói rằng tôi đang sử dụng này:GWT Canvas: làm thế nào để thay đổi dòng màu

import com.google.gwt.canvas.client.Canvas; 

Vấn đề là nếu tôi vẽ một đường màu đen và sau đó thay đổi thành màu đỏ, dòng đầu tiên cũng được thay đổi thành màu đỏ.

// draw line in black 
context.moveTo(xScale(-0.5), yScale(0.0)); 
context.lineTo(xScale(15.0), yScale(0.0)); 
context.stroke(); 

// change to red 
context.setStrokeStyle(CssColor.make(255,0,0)); 


context.moveTo(xScale(0.0), yScale(20.0)); 
context.lineTo(xScale(0.0), yScale(-20.0)); 
context.stroke(); 

// both lines appear in red 

Phương pháp chính xác để thay đổi màu bút là gì?

Trả lời

4

Gọi context.beginPath() trước mỗi hình dạng/dòng mới với màu sắc khác nhau sẽ khắc phục được sự cố của bạn.

// draw line in black 
context.beginPath(); 
context.moveTo(xScale(-0.5), yScale(0.0)); 
context.lineTo(xScale(15.0), yScale(0.0)); 
context.stroke(); 

context.beginPath(); 
// change to red 
context.setStrokeStyle(CssColor.make(255,0,0)); 

context.moveTo(xScale(0.0), yScale(20.0)); 
context.lineTo(xScale(0.0), yScale(-20.0)); 
context.stroke(); 

// both lines appear in red 

Về cơ bản beginPath() đẩy tình trạng

+0

Cảm ơn. Hoạt động tuyệt vời. - Seadrive – SeaDrive

Các vấn đề liên quan