2013-03-13 49 views
0

我有以下的JS對象:Javascript成爲獲得一個對象的屬性,點擊存儲在對象內陣列的圖像,HTML5的Canvas

var sources = { 
     assets: [], 
     liabilities: [], 
     income: [], 
     expenditure: [] 
    } 

,你可以看到,這個對象包含一些JS數組。我在我的HTML增加了許多圖像從一個隱藏的部分,這些陣列使用線路如:

sources.assets[0] = document.getElementById("building").src, 
sources.assets[1] = document.getElementById("chair").src, 
sources.liabilities[0] = document.getElementById("burger").src, 
sources.liabilities[1] = document.getElementById("chips").src, 

我現在希望能夠做的是:當檢測到點擊(或mousedown)時在畫布上的這些圖像中的一個上,我想找出該圖像屬於哪個數組,並將該數組的值(即數組名稱 - 資產/負債等)保存到變量中。

但我不知道我怎樣才能找到這一點...我想,當一個檢測到點擊打印圖像的屬性的內容,使用線路:

console.log("value of variable obj:" + output + ". Shape is " + obj.shape + ". index is " + obj.shape.index); 

但這只是給了我下面的打印輸出在控制檯控制檯

value of variable obj:shape: [object Object]; pixel: [object Uint8ClampedArray]; . Shape is [object Object]. index is 7 

我使用KineticJS庫的本地副本將圖像繪製在畫布上,我知道該變量obj是一個在kineticJS庫mousedown函數中使用。

用戶需要將每個「可拖動」圖像拖動到相應的描述框(位於畫布上)。

我想知道的是我如何知道被點擊的圖像屬於哪個數組,以便我可以將該數組的名稱與用戶拖動的圖像的名稱進行比較'點擊'圖像爲:如果它們相同,則用戶已將圖像拖動到正確的描述框,否則,他們做出了不正確的選擇。

有誰知道我該如何找出點擊圖片屬於哪個數組?

+0

請記錄'output'和'obj',以便我們可以看到它們擁有哪些屬性,它們的字符串不會幫助我們。 – Bergi 2013-03-13 17:32:57

+0

這就是我所做的......'output'的日誌顯示'shape:[object Object];像素:[object Uint8ClampedArray];','obj'的日誌顯示'[object Object]'... – someone2088 2013-03-13 18:17:58

+0

不,請重新閱讀我的評論。使用'console.dir'或'console.log(output,obj)'並展開屬性! – Bergi 2013-03-13 19:55:24

回答

0

當你創建kineticJS圖像,設置圖像類型的每個圖像的「名稱」屬性是這樣的:

var chair = new Kinetic.Image({ 
     x: 140, 
     y: 20, 
     name: chair, 
     ...more... 

然後當圖像被選擇使用所選對象的.getName()檢索「椅子」。

從那裏,你做你的陣列查找和一切都很好...

所以你正在使用的「名字」屬性有點像一個CSS類名。

相關問題