2013-11-05 31 views
0

此代碼將30個led圖像繪製到canvas上。如何選擇和更改led符號onMouseDown事件的來源?如何獲得paperjs上的符號圖層?

var raster = new Raster(); 
raster.source="/PNG/Red.png"; 
var sembol = new Symbol(raster); 

for (var i = 0; i < 30; i++) { 
    var bura = sembol.place(); 
    bura.position = Point.random() * view.size; 
    bura.scale(0.5); 


}; 

回答

0

假設你有一組光柵對象在你看來,像一排按鈕,下面應該工作:

function onMouseDown(event) { 
    if (event.item && event.item.type === 'raster') { 
      sembol.definition = event.item.clone(); 
    } 
} 

因爲當被定義爲一個項目從視圖中刪除符號,而是傳遞一個克隆。

0

您可以直接添加onMouseDown handlerPlacedSymbol,在這種情況下bura

for (var i = 0; i < 30; i++) { 
    var bura = sembol.place(); 
    bura.position = Point.random() * view.size; 
    bura.scale(0.5); 

    bura.onMouseDown = function() {   
    // you can use the closure variable `raster` 
    raster.source = "/PNG/Blue.png"; 

    // or, if you don't have acces to `raster`: 
    this.symbol.definition.source = "/PNG/Blue.png"; 
    } 
} 

希望這樣不會你所期望的。