dojox
Version:
Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.
129 lines (118 loc) • 4.09 kB
HTML
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" >
<head>
<title>Testing animation</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
@import "../../../dojo/resources/dojo.css";
@import "../../../dijit/tests/css/dijitTests.css";
</style>
<script type="text/javascript" src="../../../dojo/dojo.js" data-dojo-config="isDebug: true"></script>
<!--
<script type="text/javascript" src="../_base.js"></script>
<script type="text/javascript" src="../shape.js"></script>
<script type="text/javascript" src="../path.js"></script>
<script type="text/javascript" src="../arc.js"></script>
<script type="text/javascript" src="../fx.js"></script>
-->
<!--<script type="text/javascript" src="../vml.js"></script>-->
<!--<script type="text/javascript" src="../svg.js"></script>-->
<!--<script type="text/javascript" src="../canvas.js"></script>-->
<!--<script type="text/javascript" src="../silverlight.js"></script>-->
<script type="text/javascript">
dojo.require("dojox.gfx");
dojo.require("dojox.gfx.fx");
dojo.require("dojo.colors");
var rect, text;
function createSurface(){
var surface = dojox.gfx.createSurface("test", 500, 500);
surface.whenLoaded(makeShapes);
};
function makeShapes(surface){
rect = surface.createRect({x: 100, y: 100, width: 300, height: 300}).
setFill("yellow").setStroke({
color: "green",
width: 5,
join: "round"
});
text = surface.createText({x: 250, y: 250, text: "Hello!", align: "middle"})
.setFill("black").setFont({family: "serif", size: "10pt"});
};
dojo.addOnLoad(createSurface);
var animateStroke = function(){
var anim = dojox.gfx.fx.animateStroke({
duration: 5000,
shape: rect,
color: {start: "green", end: "red"},
width: {start: 5, end: 15},
join: {values: ["bevel", "round"]}
});
dojo.byId("stroke").disabled = "disabled";
dojo.connect(anim, "onEnd", function(){ dojo.byId("stroke").disabled = ""; });
anim.play();
};
var animateFill = function(){
var anim = dojox.gfx.fx.animateFill({
duration: 5000,
shape: rect,
color: {start: "yellow", end: "blue"}
});
dojo.byId("fill").disabled = "disabled";
dojo.connect(anim, "onEnd", function(){ dojo.byId("fill").disabled = ""; });
anim.play();
};
var animateFont = function(){
var anim = dojox.gfx.fx.animateFont({
duration: 5000,
shape: text,
variant: {values: ["normal", "small-caps"]},
size: {start: 10, end: 50, units: "pt"}
});
dojo.byId("font").disabled = "disabled";
dojo.connect(anim, "onEnd", function(){ dojo.byId("font").disabled = ""; });
anim.play();
};
var animateTransform = function(){
var anim = dojox.gfx.fx.animateTransform({
duration: 5000,
shape: text,
transform: [
{name: "rotategAt", start: [0, 250, 250], end: [360, 350, 350]},
{name: "translate", start: [0, 0], end: [100, 100]}
]
});
dojo.byId("transform").disabled = "disabled";
dojo.connect(anim, "onEnd", function(){ dojo.byId("transform").disabled = ""; });
anim.play();
};
var animateMatrix = function(){
var customMatrix = dojox.gfx.matrix.multiply([dojox.gfx.matrix.rotategAt(-90,250,250),dojox.gfx.matrix.translate(100,100),dojox.gfx.matrix.scaleAt(2,250,250)]);
var anim = dojox.gfx.fx.animateTransform({
duration: 5000,
shape: text,
transform: [
{name: "matrix", start: dojox.gfx.matrix.identity, end: customMatrix}
]
});
dojo.byId("matrix").disabled = "disabled";
dojo.connect(anim, "onEnd", function(){ dojo.byId("matrix").disabled = ""; });
anim.play();
};
</script>
</head>
<body>
<h1>Testing animation</h1>
<p>
<button id="stroke" onclick="animateStroke();">Stroke</button>
<button id="fill" onclick="animateFill();">Fill</button>
<button id="font" onclick="animateFont();">Font</button>
<button id="transform" onclick="animateTransform();">Transform (predefined primitives)</button>
<button id="matrix" onclick="animateMatrix();">Transform (raw matrix)</button>
</p>
<div id="test" style="width: 500px; height: 500px;"></div>
<p>That's all Folks!</p>
</body>
</html>