【发布时间】:2012-12-27 07:26:54
【问题描述】:
这是我目前的状态:http://jsfiddle.net/andrewgable/Xr6mc/
<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body>
<div id="container"></div>
<script src="http://www.html5canvastutorials.com/libraries/kinetic-v4.3.0-beta2.js"></script>
<script>
var stage = new Kinetic.Stage({
container: 'container',
width: 578,
height: 200
});
var lineLayer = new Kinetic.Layer();
var flowerLayer = new Kinetic.Layer();
var centerLayer = new Kinetic.Layer();
var flower = new Kinetic.Group({
x: stage.getWidth() / 2,
y: stage.getHeight() / 2
});
// build stem
var stem = new Kinetic.Line({
strokeWidth: 10,
stroke: 'green',
points: [{
x: flower.getX(),
y: flower.getY()
}, {
x: stage.getWidth() / 2,
y: stage.getHeight() + 10
}]
});
// build center
var center = new Kinetic.Circle({
x: 0,
y: 0,
radius: 6,
fill: 'black',
draggable: true,
x: stage.getWidth() / 2,
y: stage.getHeight() / 2
});
center.on('mouseover', function() {
this.setFill('orange');
flowerLayer.draw();
document.body.style.cursor = 'pointer';
});
center.on('mouseout', function() {
this.setFill('black');
flowerLayer.draw();
document.body.style.cursor = 'default';
});
stage.on('mouseup', function() {
document.body.style.cursor = 'default';
});
lineLayer.add(stem);
flowerLayer.add(flower);
centerLayer.add(center);
stage.add(lineLayer);
stage.add(flowerLayer);
stage.add(centerLayer);
// keep step and flower position in sync with center
center.on('dragstart', (function() {
center.getLayer().afterDraw(function() {
stem.attrs.points[0] = center.getPosition();
flower.setPosition(center.getPosition());
lineLayer.draw();
flowerLayer.draw();
});
}));
</script>
</body>
</html>
只是试图使这条线可拖动(简单,将其设置为拖动)。
我希望这条线有两个锚点,都可以向任何方向拖动。
如你所见,我只需要做一个“锚点”。
如果没有锚点移动,我无法弄清楚使这成为可能的逻辑..
感谢您的帮助。
【问题讨论】:
-
我不确定您要问什么,在某一时刻您想要制作 2 个锚点来控制运动,您可以像您为中心所做的那样做到这一点,确保在之后添加第二个锚点干。其次,您提到您不希望锚点移动。
-
Here 是当前状态。您可以拖动线。但是当你这样做时,锚点不会随线拖动。我试图将它添加到一个组中,但似乎没有正确拖动。另外,我想在线上的两个圆圈拖动任一侧。
-
你有什么特别的理由制作这么多不同的层并将这些对象组合成组。看起来太复杂了
-
不是真的,JavaScript 新手!
标签: javascript html5-canvas kineticjs