2011-10-05 116 views
0

我想兌換一些畫布圖像(帽子和外套)變化畫布圖像

這裏是代碼

document.ready = function() { 

canvas = document.getElementById('canvasspace'); 
ctx = canvas.getContext('2d'); 

drawImage(); 

} 

function drawImage(){ 

    var tempimage = new Image(); 
    tempimage.src = jackets_images[jacket_to_draw]; 
    tempimage.onload = function(){ ctx.drawImage(tempimage, 0, 0); }; 

    var tempimage2 = new Image(); 
    tempimage2.src = hats_images[hat_to_draw]; 
    tempimage2.onload = function(){ ctx.drawImage(tempimage2, 0, 0); };  
} 

兩個圖像顯示了一個比其他一個,但使2次代碼與2個新的圖像();我的眼睛看起來不太好!但我不知道更好..請給我看光

+0

哦,你想要他們層?我以爲我讀到你不希望他們分層? – jdi

+0

ctx.drawImage()不應該每次都清除畫布。你確定你的源圖像有alpha通道嗎?也許當你畫第二張時,你只是因爲缺乏阿爾法而掩蓋畫布? – jdi

+0

由於混淆......這裏是新的代碼......查看! – menardmam

回答

2
var imageNames = new Array(); 
imageNames[0] = jackets_images[jacket_to_draw]; 
imageNames[1] = hats_images[hat_to_draw]; 

var drawnImages = new Array(); 

function drawImage(images) { 
    for (var i = 0; i < images.length; i++) { 
     drawnImages[i] = new Image(); 
     drawnImages[i].src = images[i]; 
     drawnImages[i].onload = function(){ 
      var thisImg = drawnImages[i]; 
      ctx.drawImage(thisImg, 0, 0); 
     }; 
    } 
}