以下是它的要点:我有一个getColor方法和一个setColor方法。
color_obj
更新为当前对象。问题是,它只会将其绘制为黑色。
这里是小提琴:http://jsfiddle.net/EbvH7/3/
和源 - html:
<html>
<!--- Click the square box to get its color.
Then change the color and hit set.
For some reason it draws the color black only.... -->
<head>
<script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/v4.2.0/kinetic-v4.2.0.min.js"></script>
<script src="http://jscolor.com/jscolor/jscolor.js"></script>
<script>
var stage; //canvas
var layer_frame = new Kinetic.Layer(); //Blue frame holder
var color_obj; //global pointer to object to be colored.
function getColor(obj) {
color_obj = obj; //set global pointer
var fill = '"'+color_obj.getFill()+'"';
var name = color_obj.getName();
document.getElementById('color_pick').color.fromString(fill);
document.getElementById('colorname_obj').innerHTML = name;
}
function setColor(){
//Use global pointer
var fill = document.getElementById('color_pick').color;
var name = document.getElementById('colorname_obj').innerHTML;
color_obj.setFill('"'+fill+'"');
color_obj.setName(name);
stage.draw()
}
function setup() {
stage = new Kinetic.Stage({
container: 'container',
width: 400, height: 400
});
var frame_area = new Kinetic.Rect({
x: 100, y: 100, opacity: 1,
width: 30, height: 30,
fill: 'a7cccb', stroke: 'black', strokeWidth: 2,
name: 'blue_box'
});
frame_area.on('click', function() {
getColor(this)
});
// add the layer to the stage
layer_frame.add(frame_area);
stage.add(layer_frame);
stage.draw();
};
</script>
</head>
<body onload="setup()">
<!--Canvas--->
<div id="container"></div>
<!--Panels-->
<div id="panel_left">
<!--- C O L O R B O X -->
<div id="colorbox">
<h7 id="colorname_obj" >None</h7><br/>
<input class="color" id="color_pick" style="width:50%" value="000000" >
<input type="button" id="color_set" value="Set" onclick="setColor()" >
</div>
</div>
</body>
</html>
和css:
#panel_left {
position:absolute;
top:30px; left:30px;
width:100px; background-color:red;
}
#container {
position:absolute;
top:30px; left:130px;
background-color:blue;
width:50%; height:50%;
}
答案 0 :(得分:0)
另外,4.3.0中的新内容
Kinetic.Text形状的重大变化。已删除Rectangle组件以简化API。 textFill现在是fill,textStroke现在是stroke,textStrokeWidth现在是strokeWidth,textShadow现在是shadow。如果要在文本后面放置一个矩形,则需要使用Kinetic.Rect形状对文本进行分组。文本fontSize单位现在以像素为单位(以点为单位)。 lineHeight attr现在默认为1(以前默认为1.2)。