curve-source.mustache revision 3dde601567dd6bab7c9f86e64a472c4d90b03cf6
<p>The X and Y of 1, 2, and 3, are the sub-arrays in array value of "curve:" in the anim.set()</p>
<p><code>anim.set('to', {curve: [
<div class="fat-finger" title="Drag to change start point"></div> <!-- Gives the points a larger target area to drag -->
var mygraphic = new Y.Graphic({render:"#mygraphiccontainer"}),
origin = Y.one('.example'), // The XY values for the animation are based on the upper-left corner of this element
demoA = Y.one('#demo'), // The animated element
arrDot = [ [parseInt(dot0.getStyle('left'), 10), parseInt(dot0.getStyle('top'), 10)], [parseInt(dot1.getStyle('left'), 10), parseInt(dot1.getStyle('top'), 10)], [parseInt(dot2.getStyle('left'), 10), parseInt(dot2.getStyle('top'), 10)], [parseInt(dot3.getStyle('left'), 10), parseInt(dot3.getStyle('top'), 10)] ],
dd0 = new Y.DD.Drag({
dd1 = new Y.DD.Drag({
dd2 = new Y.DD.Drag({
dd3 = new Y.DD.Drag({
dd0.on('drag:drag', function(e){
dd1.on('drag:drag', function(e){
dd2.on('drag:drag', function(e){
dd3.on('drag:drag', function(e){
dd0.on('drag:end', function(e){
dd1.on('drag:end', function(e){
dd2.on('drag:end', function(e){
dd3.on('drag:end', function(e){
var anim = new Y.Anim({
easing: Y.Easing.easeOut
demoA.setStyles({'left':arrDot[0][0], 'top':arrDot[0][1]});
var oX = origin.getX(),
oY = origin.getY();
anim.set('to', {
curve: [ [(arrDot[1][0] + oX), (arrDot[1][1] + oY)], [ (arrDot[2][0] + oX), (arrDot[2][1] + oY) ], [ (arrDot[3][0] + oX), (arrDot[3][1] + oY) ] ]
var runAnim = function(){anim.run();}
Y.one('#btn-animate').on('click', function(){
Y.one('.arr0').setContent(arrDot[0][0] + ',' + arrDot[0][1]); // Start
Y.one('.arr1').setContent(arrDot[1][0] + ',' + arrDot[1][1]); // Control point 1
Y.one('.arr2').setContent(arrDot[2][0] + ',' + arrDot[2][1]); // Control point 2
Y.one('.arr3').setContent(arrDot[3][0] + ',' + arrDot[3][1]); // End
var animPath = mygraphic.addShape({
animPath.moveTo(arrDot[0][0],arrDot[0][1]);
animPath.curveTo(arrDot[1][0],arrDot[1][1], arrDot[2][0],arrDot[2][1], arrDot[3][0],arrDot[3][1]);
animPath.end();