2016-02-14 63 views
0

我正在與HTML5的Canvas遊戲和我有一些麻煩,在屏幕上獲得的圖像在Javascript中獲得新的圖像。最好的方法使用帆布

//player img 
var img1 = new Image(); 
    img1.onload = function() { 
     console.log("image loaded"); 
    }; 
    img1.src = "player.png"; 

該圖像是一個名爲「播放器」的.png文件,並保存在我的桌面上。我在設置src方法時做錯了什麼?有一個更好的方法嗎?我感謝任何幫助。

+0

我不太清楚你問什麼... ... *繪製你的img:*當它完全只要你把'context.drawImage(IMG1加載你的形象將借鑑,0,0)'在你的'img1.onload'中。 *組織img.src文件:*如果您在開發計算機上進行粗略設計,則將所有頁面文件(包括.png)放在桌面上都可以。當您在Web服務器上投入生產時,傳統上會創建一個包含index.html的根目錄,併爲每種類型的文件(root/js,root/css,root/images等)創建一個子目錄。 – markE

回答

1

那麼首先,圖像應該是相對於html文件的路徑,如果你沒有看到的圖像,這可能是因爲你沒有把那相對路徑到你的代碼(您只使用文件名稱暗示該圖像與html文件位於同一目錄中)。

此外,你還沒有表現出任何代碼的圖像與畫布相關聯。這是方法:

// Get the DOM object reference for the canvas element: 
    var canvas = document.getElementById("canvas"); 

    // Get an object reference for the canvas' contextual environment: 
    var ctx = canvas.getContext('2d'); 

    // Instantiate an image to use as the background of the canvas: 
    var img = new Image(); 

    // Make sure the image is loaded first otherwise nothing will draw. 
    img.addEventListener("load", function() { 
     // Draw the image on the canvas at position 0, 0 (top-left): 
     ctx.drawImage(img, 0, 0); 
    }); 

    // Wait until after wiring up the load event handler to set the image source 
    // This example assumes that the image is located in a sub-folder of the current folder, called images. 
    // Your path must be a relative reference to the location where the image is. 
    img.src = "images/starfield.jpg"; 
+0

感謝您的幫助,但我如何找到照片的相對路徑?我可以使用C:\ Users \ Me \ Desktop \ player.png嗎? –

+0

「相對」簡單的說哪裏是基於我目前的位置的東西,所以你必須與.html文件的位置開始(這是「你在這裏」點)。要引用一個文件夾(父文件夾),您可以使用兩個點和一個斜線,後面跟着您希望存在的文件:../player.png。要引用子文件夾中的某些內容,請從與.html文件位於同一文件夾中的子文件夾的名稱開始,然後放置該文件夾中的文件名,如:images/player.png –

+0

請勿使用您寫下的路徑(C:\ ...)。這不是相對路徑,這是絕對路徑,只有在您從計算機上查看網頁時纔有效。將工作發佈到主機時,您不會發布C:\ Users \ Me \ Desktop文件夾。您應該創建一個工作目錄,然後爲您的網站需要的支持文件(圖像,CSS,腳本等)創建該目錄的子文件夾。 .html文件進入工作目錄,支持文件按類型組織到子文件夾中。 –