2013-03-11 66 views
0

我有一些文本,它有一個「link variabletext」(其中variabletext對每個鏈接都是唯一的)形式的類。我試圖設置它,以便當我將鼠標懸停在文本上時,相應的對象將使用jQuery更改顏色。KineticJS以編程方式設置筆劃

什麼,我有一個的jsfiddle:http://jsfiddle.net/hdJCn/

的代碼我使用:

<a href="javascript:void(0);" class="link one">One</a> 
<a href="javascript:void(0);" class="link two">Two</a> 
<a href="javascript:void(0);" class="link three">Three</a> 
<div id="container"></div> 

var stage = new Kinetic.Stage({ 
container: 'container' 
}); 

var layer = new Kinetic.Layer(); 

var onecircle = new Kinetic.Ellipse({ 
x: 100, 
y: 100, 
radius: { 
    x: 50, 
    y: 50 
}, 
strokeWidth: 1, 
stroke: 'black' 
}); 

layer.add(onecircle); 
stage.add(layer); 

$('.link').mouseover(function() { 
var numclass = $(this).attr('class').split(' ')[1]; 
(numclass + 'circle').setStroke('orange'); 
}); 

的問題是,它說,對象有沒有方法「setStroke」。如果我採用相同的對象名稱並對其進行硬編碼(因此onecircle.setStroke而不是上述),它可以正常工作。我不知道這是爲什麼,目前爲止我們處於虧損狀態。

回答

0

想通了。我不得不把字符串轉換爲一個對象:

var obj = eval(numclass+'circle'); 

然後用obj.setStroke ....

+0

我寧願不是kineticJS的使用ID的形狀,而不是eval.http://www.html5canvastutorials.com/kineticjs/HTML5帆布選形逐ID與 - kineticjs / – allenhwkim 2013-03-11 22:51:54