2013-03-02 70 views
3

我試圖繪製一個填充矩形,該矩形爲fillStyle使用了一個模式。 以下代碼允許繪製一個矩形,但在此之後,對於所有後續動作,繪製將被拋棄。createPattern方法實現

這是一個控制填充代碼:我懷疑還有一些關於我失蹤了createPattern方法

var img = new Image(); 
img.src = 'https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcR4Ag1va1Vm9Tynun8vY89CS1pY1eNMWGMxrc5efOIzEcQ-4IFa' 
var pat = context.createPattern(img, 'repeat'); 
context.fillStyle = pat; 

。 是否有替代方案,我試圖完成不使用createPattern?我注意到一些例子使用onload(); img.src的值在我的生活環境中發生變化,所以我不確定這是否相關。

小提琴:http://jsfiddle.net/Dvtz3/10/

好了,事實證明,一旦我跑活的而不是局部的鍍鉻安全錯誤是固定的,但不是在RECT帶有圖案填充,它加油吧固體。填充模式在FF做工精細

https://dl.dropbox.com/u/97446129/2-28/joined%2011-1/filltest.html

回答

1

查看錯誤控制檯,我看到它的全SecurityError秒。這是因爲當你畫到畫布上時,你正在用一個交叉原點圖像來玷污它。由於安全原因,這將禁止您撥打getImageData,因此會導致「時髦」的結果。

+0

img.src的值是真實版本中的'images/pattern1.jpg'。這是否仍然會導致問題? – metamlkshk 2013-03-02 00:55:48

+1

恐怕我不知道。我需要看到帶有本地圖像的真實版本。但你應該檢查你的錯誤控制檯。有什麼東西出現嗎? – 2013-03-02 00:56:37

+0

看起來你是正確的。在Firefox中,此代碼工作正常(允許使用新的填充模式一個接一個地繪製rects),但chrome顯示安全錯誤。我想我需要一個替代方法鉻? – metamlkshk 2013-03-02 01:00:35