2012-09-20 64 views
0

我一直與一個非常簡單的HTML5 /畫布繪製基於應用程序玩弄,只是瀏覽器。我將其設置爲概念驗證,以適應不同的程序化繪圖效果等。但是,當我嘗試從canvas 2d上下文獲取ImageData時,遇到了一個問題,即SecurityError。爲什麼我的context.getImageData()調用非法?

現在,我知道所有關於跨瀏覽器的內容和運行與本地內容和所有的網絡服務器的安全問題。這不是我的問題。我沒有使用圖片。更奇怪的是,我可以在我的代碼中的某些地方抓取ImageData,而不是其他人。具體而言,不在函數中,這是我想要的地方。

這裏是我的代碼分支: http://jsfiddle.net/grimertop90/77Z42/ 隨意玩耍,並嘗試在畫布上繪圖。

(注意:我已經在Chrome中不斷髮展,它工作正常,但我只是試圖在Firefox中運行它,它似乎有問題,對於我而言,請你只檢查出來的Chrome)

如果你看看,雖然JavaScript的,你應該看到三個點標有「案例1」,「案例2」和「案例3」。這些是我的代碼中我試圖抓取畫布的ImageData的三點。案例1和案例3工作;情況2,重要的是,沒有。情況1在初始化期間。情況3在用戶的按鈕點擊。在畫布上繪製了一定數量的點時,情況2被打開。

我不知道是什麼的問題可能是,特別是因爲它進2出的3處工作。

回答

1

您的代碼正常工作,您唯一的問題是arcSketch調用中缺少的參數。目前您擁有:

if(points.length> = 100){arcSketch(); }

只要改變它

如果(points.length> = 100){arcSketch(X,Y); }

您試圖撥打ctx.getImageData(Nan, Nan, 200, 200)這是拋出錯誤。 您可以看到它的工作here

+0

Bahahahaha謝謝你。那只是個普通的數字。 –

相關問題