//so my code.
goPlace(cubes[7], ["r","r","r","u","u","r","r"]);
private function goPlace(c:CubeSprite, dirs:Array):void{
var total:uint = dirs.length;
var i:uint = 0;
var sx:Number = c.x;
var sy:Number = c.y;
var timeline:TimelineMax = new TimelineMax({align:TweenAlign.SEQUENCE});
for(i; i < total; ++i){
switch(String(dirs[i])){
case "l":
sx -= SIZE;
timeline.append(TweenMax.to(c, .5, {frame:60, x:sx, onInit:setRotation, onInitParams:[c, 180], ease:Linear.easeNone}));
break;
case "r":
sx += SIZE;
timeline.append(TweenMax.to(c, .5, {frame:60, x:sx, onInit:setRotation, onInitParams:[c, 0], ease:Linear.easeNone}));
break;
case "u":
sy -= SIZE;
timeline.append(TweenMax.to(c, .5, {frame:60, y:sy, onInit:setRotation, onInitParams:[c, -90], ease:Linear.easeNone}));
break;
case "d":
sy += SIZE;
timeline.append(TweenMax.to(c, .5, {frame:60, y:sy, onInit:setRotation, onInitParams:[c, +90], ease:Linear.easeNone}));
break;
default:
trace("default dir: "+dirs[i]);
break;
}
}
}
private function setRotation(c:CubeSprite, r:int = 0):void{
c.gotoAndStop(1);
c.rotation = r;
}