Tweening a line with different numbers of points. close #92

This commit is contained in:
lavrton
2015-09-12 12:00:50 +07:00
parent fdf852547e
commit 5f2c70ddc7
9 changed files with 350 additions and 45 deletions

View File

@@ -1629,4 +1629,27 @@ suite('Container', function() {
assert.deepEqual(group.getClientRect(), {x:10, y:10, width: 0, height:0});
});
test.skip('getClientRect - test layer', function() {
var stage = addStage();
var layer = new Konva.Layer();
var group1 = new Konva.Group();
var group2 = new Konva.Group();
var rect = new Konva.Rect({
x: 50,
y: 100,
width: 200,
height: 75,
fill: 'red'
});
group1.add(rect);
layer.add(group1);
layer.add(group2);
stage.add(layer);
assert.deepEqual(layer.getClientRect(), {x: 50, y: 100, width: 200, height: 75});
});
});

View File

@@ -22,7 +22,7 @@ suite('Tween', function() {
var onFinish = function() {
assert(++finishCount <= 1, 'finishCount should not exceed 1');
done();
}
};
var tweens = 0;
var attrs = 0;
@@ -217,4 +217,66 @@ suite('Tween', function() {
}, 50);
});
suite('tween array with different length', function() {
test('prepare array closed', function() {
var start = [0, 0, 10, 0, 10, 10];
var end = [0, 0, 10, 0, 10, 10, 0, 10];
var newStart = Konva.Util._prepareArrayForTween(start, end, true);
assert.deepEqual(newStart, [0, 0, 10, 0, 10, 10, 5, 5]);
});
test('prepare array - opened', function() {
var start = [0, 0, 10, 0, 10, 10, 0, 10];
var end = [0, 0, 10, 0, 7, 9];
end = Konva.Util._prepareArrayForTween(start, end, false);
assert.deepEqual(end, [0, 0, 10, 0, 7, 9, 7, 9]);
});
test('tween array with bigger size', function(done) {
var stage = addStage();
var layer = new Konva.Layer();
stage.add(layer);
var line = new Konva.Line({
stroke: 'black',
points: [100, 100, 200, 100, 200, 200],
closed: true
});
layer.add(line);
line.to({
points: [100, 100, 200, 100, 200, 200, 100, 200],
duration: 0.1,
onFinish: function() {
assert.deepEqual(line.points(), [100, 100, 200, 100, 200, 200, 100, 200]);
done();
}
});
});
test('tween array to lower size', function(done) {
var stage = addStage();
var layer = new Konva.Layer();
stage.add(layer);
var line = new Konva.Line({
stroke: 'black',
points: [100, 100, 200, 100, 200, 200, 100, 200],
closed: true
});
layer.add(line);
line.to({
points: [100, 100, 200, 100, 200, 200],
duration: 0.1,
onFinish: function() {
assert.deepEqual(line.points(), [100, 100, 200, 100, 200, 200]);
done();
}
});
});
});
});