2013-03-02 80 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