2015-05-06 50 views
0

更改URL圖像的透明度我有幾行代碼是添加植物到我的畫布遊戲:在畫布

function drawPlant() { 
    base_image = new Image(); 
    base_image.src = 'http://i.imgur.com/xOupnQp.png'; 
    if (treeLoaded) { 
     ctx.drawImage(base_image, 20, 333, 60, base_image.height * (60/base_image.width)); 
    } 
    else { 
    base_image.onload = function(){ 
     treeLoaded = true; 
    }; 
} 

這使圖像進入我的遊戲。不過,我也想讓它淡出一點。我可以使用GlobalAlpha嗎?如果是這樣,我該怎麼做?謝謝。

回答

3

是的,globalAlpha是一個不錯的選擇。它取值範圍[0,1]。

例如:

(例如還糾正裝載模式)

function drawPlant() { 
    base_image = new Image(); 
    base_image.onload = function(){ 
     treeLoaded = true; 
     ctx.globalAlpha = 0.5; // 50% opacity 
     ctx.drawImage(this, 20, 333, 60, base_image.height * (60/base_image.width)); 
     ctx.globalAlpha = 1; // normal full opacity 
    }; 
    base_image.src = 'http://i.imgur.com/xOupnQp.png'; 
} 

你可能想太多考慮回調加載圖像發生異步地,例如,修改示例callback-能力可能看起來像:

function drawPlant(callback) { 
    base_image = new Image(); 
    base_image.onload = function(){ 
     treeLoaded = true; 
     ctx.globalAlpha = 0.5; // 50% opacity 
     ctx.drawImage(this, 20, 333, 60, base_image.height * (60/base_image.width)); 
     ctx.globalAlpha = 1; // normal full opacity 
     callback(this);  // invoke callback with image as argument 
    }; 
    base_image.src = 'http://i.imgur.com/xOupnQp.png'; 
} 

然後:

drawPlant(function(img) { 
    // continue from here... 
}); 
+0

非常感謝!我還有一個動畫功能。 http://pastebin.com/raw.php?i=8ZYV9DN5 你能解釋我怎麼能讓那個透明嗎? – IStoleThePies

+0

我去創建一個新的問題,並遇到了這條消息: 我們不再接受這個帳戶的問題。請參閱幫助中心瞭解更多信息。 有什麼其他方法可以向你解釋這個嗎?我的整個遊戲是在這裏:http://www.codecademy.com/IStoleThePies/codebits/UJFpg4/edit – IStoleThePies

+0

@IStoleThePies如果你的帳戶有問題聯繫主持人或要求[meta](http:// meta .stackoverflow.com /)。爲新問題打開一個新帖子。如果答案解決了您的問題,請考慮接受它來關閉此帖。 – K3N