2015-10-07 44 views
0

我正在繪製具有漸變填充和描邊的createjs畫布上的按鈕。按鈕的數量在for循環中繪製。您將在小提琴中看到的每個部分都通過功能單獨繪製。但只有第一個函數運行纔會繪製正確的填充。隨後的通話只能畫出梯度筆劃Jsfiddle漸變填充爲空循環

for (i = 0; i < db.length; i++) { 
     var btn = db[i]; 
     var sdb = btn.split("_"); 
     var blabel = sdb[0]; 
     var battrib = sdb[1]; 
     var bval = sdb[2]; 
     var sid = sdb[3]; 
     var tick = sdb[4]; 
     var cptn = sdb[5]; 
     var imageType = sdb[6]; 
     var buttonSize = 90 + 10; 



     var bttn = new c.Shape(); 
     bttn.graphics.beginLinearGradientFill([grad1, grad2], [.2, 1], 0, 0,0,50).setStrokeStyle(3).beginLinearGradientStroke([grad2, grad1], [.2, 1], 0, 0,0,50).drawRoundRect(x, y, 85, 35,5); 

     var label = new c.Text(blabel); 
      label.font = font; 
      label.color = '#000'; 
      label.x = x+8; 
      label.y = y+6; 


     m1.addChild(bttn, label); 

     x+= buttonSize; 
    }s.update(); 

回答

1

它似乎對我有用。你可能忘了補償你的按鈕,所以你只看到第一個按鈕? bttn.y = i*40

https://jsfiddle.net/gskinner/wqu4nzdq/12/

+0

從我的例子中,梯度製作的第一個電話。但看看按鈕的其餘部分。它們是純白色的。該顏色是該函數中使用的第二個漸變顏色..其餘的按鈕應呈現完全相同的方式.. – user3200548

+0

我無法在任何瀏覽器中看到我測試過。但是,通過更改y位置,它工作正常。 – gskinner