2011-07-22 52 views
0

我有一個seat函數,它需要一些值,其中3個用於在畫布上繪製圓。函數繪製(帆布)從數組中的多個項目

每個圓圈都是一個以人名命名的變量,其中包含seat函數的值。

我有以下的功能,我用它來繪製單個圓:

 
       ctx.fillPerson = function(p){ 
        this.fillStyle = p.fillStyle; 
        this.arc(p.centerX, p.centerY, p.radius, 0, 2*Math.PI, false); 
        this.fill(); 
       } 

時,我舉例來說做到這一點的偉大工程,ctx.fillPerson(johnSmith);但我創造的人多集團在陣列形式,我需要一個函數來繪製這些數組中的人物。

我有一個包含上述這樣的數組變量:var seatingOne = [johnSmith, joanSmith, bobJohnson, jillJohnson];

不過,我似乎無法獲得正確的功能,我覺得我在正確的軌道上,但我有限的JavaScript知識抱着我回來。到目前爲止,我有這樣的:

  ctx.fillSeats = function(s){ 
       for (var i=0; i<s.length; ++i){ 
        ctx.beginPath(); 
        ctx.fillPerson(indexOf(s)); 
       } 
      } 

我的想法是,我通過排列工序和執行beginPath();ctx.fillPerson();每個數組項。我想(?)indexOf如果使用正確的工具,但我不確定它是否確切地如何得到想要的結果。

任何幫助深表感謝,並請糾正我,如果我說什麼不當(未臀部到所有的行話相當,但無論;))

感謝

+0

我覺得你想要'[i]'而不是'indexOf(s)'? – nwellcome

+0

這可能是正確的,我做了改變,但仍然沒有任何東西正在繪製,當我使用'ctx.fillSeats(myArray);' – tehaaron

+0

這原來是正確的,我的錯誤是怪。謝謝 – tehaaron

回答

1

ctx.fillPerson(S [1]) ;

如果你需要結束每個循環的路徑,我不知道我的頭頂。

+0

我做了這個改變,但是當我使用'ctx.fillSeats(myArray)時,它仍然沒有畫任何東西;'我開始分組之前就知道我可以列出'ctx.fillPerson(myVar);'一個'ctx.beginPath();'在它之前,它工作正常。 – tehaaron

+0

我有一個拼寫錯誤(var i = 0,' - >'for(var i = 0;'thanks! – tehaaron