Skip to content

Commit c374bb7

Browse files
committed
Merge pull request #316 from rjwright/RefactorEffectNodeRebased
Refactor effect node
2 parents a1ab34c + 9af30d8 commit c374bb7

File tree

7 files changed

+39
-60
lines changed

7 files changed

+39
-60
lines changed

src/effect-node.js

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/keyframe-effect.js

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,22 @@
1414

1515
(function(shared, scope, testing) {
1616

17+
function EffectTime(timing) {
18+
var timeFraction = 0;
19+
var activeDuration = shared.calculateActiveDuration(timing);
20+
var effectTime = function(localTime) {
21+
return shared.calculateTimeFraction(activeDuration, localTime, timing);
22+
};
23+
effectTime._totalDuration = timing.delay + activeDuration + timing.endDelay;
24+
effectTime._isCurrent = function(localTime) {
25+
var phase = shared.calculatePhase(activeDuration, localTime, timing);
26+
return phase === PhaseActive || phase === PhaseBefore;
27+
};
28+
return effectTime;
29+
}
30+
1731
scope.KeyframeEffect = function(target, effectInput, timingInput) {
18-
var effectNode = scope.EffectNode(shared.normalizeTimingInput(timingInput));
32+
var effectTime = EffectTime(shared.normalizeTimingInput(timingInput));
1933
var keyframes = scope.convertEffectInput(effectInput);
2034
var timeFraction;
2135
var keyframeEffect = function() {
@@ -24,7 +38,7 @@
2438
};
2539
// Returns whether the keyframeEffect is in effect or not after the timing update.
2640
keyframeEffect._update = function(localTime) {
27-
timeFraction = effectNode(localTime);
41+
timeFraction = effectTime(localTime);
2842
return timeFraction !== null;
2943
};
3044
keyframeEffect._clear = function() {
@@ -33,8 +47,8 @@
3347
keyframeEffect._hasSameTarget = function(otherTarget) {
3448
return target === otherTarget;
3549
};
36-
keyframeEffect._isCurrent = effectNode._isCurrent;
37-
keyframeEffect._totalDuration = effectNode._totalDuration;
50+
keyframeEffect._isCurrent = effectTime._isCurrent;
51+
keyframeEffect._totalDuration = effectTime._totalDuration;
3852
return keyframeEffect;
3953
};
4054

@@ -60,6 +74,7 @@
6074

6175
if (WEB_ANIMATIONS_TESTING) {
6276
testing.webAnimations1KeyframeEffect = scope.KeyframeEffect;
77+
testing.effectTime = EffectTime;
6378
}
6479

6580
})(webAnimationsShared, webAnimations1, webAnimationsTesting);

target-config.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
'src/scope.js'];
1919

2020
var webAnimations1Src = [
21-
'src/effect-node.js',
2221
'src/effect.js',
2322
'src/property-interpolation.js',
2423
'src/keyframe-effect.js',
@@ -44,7 +43,6 @@
4443
];
4544

4645
var liteWebAnimations1Src = [
47-
'src/effect-node.js',
4846
'src/effect.js',
4947
'src/property-interpolation.js',
5048
'src/keyframe-effect.js',
@@ -85,13 +83,13 @@
8583
'test/js/box-handler.js',
8684
'test/js/color-handler.js',
8785
'test/js/dimension-handler.js',
88-
'test/js/effect-node.js',
8986
'test/js/effect.js',
9087
'test/js/interpolation.js',
9188
'test/js/matrix-interpolation.js',
9289
'test/js/number-handler.js',
9390
'test/js/property-interpolation.js',
9491
'test/js/tick.js',
92+
'test/js/timing-utilities.js',
9593
'test/js/timing.js',
9694
'test/js/transform-handler.js'];
9795

test/js/effect-node.js renamed to test/js/timing-utilities.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
suite('effect-node', function() {
1+
suite('timing-utilities', function() {
22
test('normalize timing input', function() {
33
assert.equal(normalizeTimingInput(1).duration, 1);
44
assert.equal(normalizeTimingInput(1).easing(0.2), 0.2);
@@ -90,25 +90,25 @@ suite('effect-node', function() {
9090
assert.closeTo(calculateTransformedTime(4, 1000, 600, {easing: function(x) { return x * x; }, direction: 'alternate-reverse'}), 160, 0.0001);
9191
assert.closeTo(calculateTransformedTime(3, 1000, 600, {easing: function(x) { return x * x; }, direction: 'alternate-reverse'}), 360, 0.0001);
9292
});
93-
test('Effect Node', function() {
93+
test('EffectTime', function() {
9494
var timing = normalizeTimingInput({duration: 1000, iterations: 4, iterationStart: 0.5, easing: 'linear', direction: 'alternate', delay: 100, fill: 'forwards'});
9595
var timing2 = normalizeTimingInput({duration: 1000, iterations: 4, iterationStart: 0.5, easing: 'ease', direction: 'alternate', delay: 100, fill: 'forwards'});
96-
var node = webAnimations1.EffectNode(timing);
97-
var node2 = webAnimations1.EffectNode(timing2);
98-
assert.equal(node(0), null);
99-
assert.equal(node(100), 0.5);
100-
assert.closeTo(node2(100), 0.8, 0.005);
101-
assert.equal(node(600), 1);
102-
assert.closeTo(node2(600), 1, 0.005);
103-
assert.equal(node(700), 0.9);
104-
assert.closeTo(node2(700), 0.99, 0.005);
105-
assert.equal(node(1600), 0);
106-
assert.closeTo(node2(1600), 0, 0.005);
107-
assert.equal(node(4000), 0.4);
108-
assert.closeTo(node2(4000), 0.68, 0.005);
109-
assert.equal(node(4100), 0.5);
110-
assert.closeTo(node2(4100), 0.8, 0.005);
111-
assert.equal(node(6000), 0.5);
112-
assert.closeTo(node2(6000), 0.8, 0.005);
96+
var effectTF = effectTime(timing);
97+
var effectTF2 = effectTime(timing2);
98+
assert.equal(effectTF(0), null);
99+
assert.equal(effectTF(100), 0.5);
100+
assert.closeTo(effectTF2(100), 0.8, 0.005);
101+
assert.equal(effectTF(600), 1);
102+
assert.closeTo(effectTF2(600), 1, 0.005);
103+
assert.equal(effectTF(700), 0.9);
104+
assert.closeTo(effectTF2(700), 0.99, 0.005);
105+
assert.equal(effectTF(1600), 0);
106+
assert.closeTo(effectTF2(1600), 0, 0.005);
107+
assert.equal(effectTF(4000), 0.4);
108+
assert.closeTo(effectTF2(4000), 0.68, 0.005);
109+
assert.equal(effectTF(4100), 0.5);
110+
assert.closeTo(effectTF2(4100), 0.8, 0.005);
111+
assert.equal(effectTF(6000), 0.5);
112+
assert.closeTo(effectTF2(6000), 0.8, 0.005);
113113
});
114114
});

web-animations-next-lite.dev.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
<script src="src/timing-utilities.js"></script>
1919
<script src="src/normalize-keyframes.js"></script>
2020
<script src="src/deprecation.js"></script>
21-
<script src="src/effect-node.js"></script>
2221
<script src="src/effect.js"></script>
2322
<script src="src/property-interpolation.js"></script>
2423
<script src="src/keyframe-effect.js"></script>

web-animations-next.dev.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
<script src="src/timing-utilities.js"></script>
1919
<script src="src/normalize-keyframes.js"></script>
2020
<script src="src/deprecation.js"></script>
21-
<script src="src/effect-node.js"></script>
2221
<script src="src/effect.js"></script>
2322
<script src="src/property-interpolation.js"></script>
2423
<script src="src/keyframe-effect.js"></script>

web-animations.dev.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
<script src="src/timing-utilities.js"></script>
1919
<script src="src/normalize-keyframes.js"></script>
2020
<script src="src/deprecation.js"></script>
21-
<script src="src/effect-node.js"></script>
2221
<script src="src/effect.js"></script>
2322
<script src="src/property-interpolation.js"></script>
2423
<script src="src/keyframe-effect.js"></script>

0 commit comments

Comments
 (0)