| Index: pkg/polymer/lib/elements/web-animations-js/test/testcases/manual-test-step.html
|
| diff --git a/pkg/polymer/lib/elements/web-animations-js/test/testcases/manual-test-step.html b/pkg/polymer/lib/elements/web-animations-js/test/testcases/manual-test-step.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3d99b61e95db283e8fe0f34e32d9dafe35d4f35d
|
| --- /dev/null
|
| +++ b/pkg/polymer/lib/elements/web-animations-js/test/testcases/manual-test-step.html
|
| @@ -0,0 +1,88 @@
|
| +<!--
|
| +Copyright 2012 Google Inc. All Rights Reserved.
|
| +
|
| +Licensed under the Apache License, Version 2.0 (the "License");
|
| +you may not use this file except in compliance with the License.
|
| +You may obtain a copy of the License at
|
| +
|
| + http://www.apache.org/licenses/LICENSE-2.0
|
| +
|
| +Unless required by applicable law or agreed to in writing, software
|
| +distributed under the License is distributed on an "AS IS" BASIS,
|
| +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| +See the License for the specific language governing permissions and
|
| +limitations under the License.
|
| +-->
|
| +
|
| +<!DOCTYPE html><meta charset="UTF-8">
|
| +<style>
|
| +canvas {
|
| + border: silver solid 1px;
|
| + padding: 5px;
|
| +}
|
| +span {
|
| + display: inline-block;
|
| + padding: 5px;
|
| +}
|
| +</style>
|
| +<body>
|
| +
|
| +<script src="../../web-animations.js"></script>
|
| +<script>
|
| +"use strict";
|
| +
|
| +var size = 100;
|
| +var duration = 3.0;
|
| +
|
| +function testStep(numSteps, position) {
|
| + var canvas = document.createElement('canvas');
|
| + canvas.width = canvas.height = size;
|
| + var ctx = canvas.getContext('2d');
|
| + ctx.beginPath();
|
| + var span = document.createElement('span');
|
| + span.appendChild(canvas);
|
| + span.appendChild(document.createElement('br'));
|
| + span.appendChild(document.createTextNode('steps: ' + numSteps));
|
| + span.appendChild(document.createElement('br'));
|
| + span.appendChild(document.createTextNode('position: ' + position));
|
| + document.body.appendChild(span);
|
| + return new Animation(ctx,
|
| + function(timeFraction, animation) {
|
| + var target = animation.target;
|
| + var inputTimeFraction = player.currentTime / duration;
|
| + if (target.lastTimeFraction !== timeFraction) {
|
| + target.beginPath();
|
| + target.moveTo(inputTimeFraction * size,
|
| + size - target.lastTimeFraction * size);
|
| + target.lineTo(inputTimeFraction * size, size - timeFraction * size);
|
| + target.strokeStyle = 'silver';
|
| + target.stroke();
|
| + target.beginPath();
|
| + target.strokeStyle = 'blue';
|
| + } else {
|
| + target.lineTo(inputTimeFraction * size, size - timeFraction * size);
|
| + }
|
| + target.lastTimeFraction = timeFraction;
|
| + target.stroke();
|
| + }, {
|
| + duration: duration,
|
| + easing: 'steps(' + numSteps + ', ' + position + ')',
|
| + });
|
| +}
|
| +
|
| +// TODO: Making player global like this is is rather ugly. It would be nice if
|
| +// the animation or player were passed to the custom animation effect's sample
|
| +// function.
|
| +var player = document.timeline.play(new ParGroup([
|
| + testStep(1, 'start'),
|
| + testStep(1, 'middle'),
|
| + testStep(1, 'end'),
|
| + testStep(3, 'start'),
|
| + testStep(3, 'middle'),
|
| + testStep(3, 'end'),
|
| + testStep(10, 'start'),
|
| + testStep(10, 'middle'),
|
| + testStep(10, 'end'),
|
| +]));
|
| +
|
| +</script>
|
|
|