Делаю так.

Код AS3:
private var combination= [[0, 4, 0, 0],
[2, 1, 5, 6],
[0, 3, 0, 0],
[0, 6, 0, 0]];
public function changeDice(direct:String):void
{
var vertical:Array = [combination[0][1], combination[1][1], combination[2][1], combination[3][1]];
var horizontal:Array = [combination[1][0], combination[1][1], combination[1][2], combination[1][3]];
var index:int;
if(direct == "up") {
content.gotoAndStop(combination[2][1]);
index = combination[0][1];
combination[0][1] = vertical[1];
combination[1][1] = vertical[2];
combination[2][1] = vertical[3];
combination[3][1] = vertical[0];
combination[1][3] = index;
}
if(direct == "down") {
content.gotoAndStop(combination[0][1]);
index = combination[2][1];
combination[0][1] = vertical[3];
combination[1][1] = vertical[0];
combination[2][1] = vertical[1];
combination[3][1] = vertical[2];
combination[1][3] = index;
}
if(direct == "right") {
content.gotoAndStop(combination[1][0]);
index = combination[1][2];
combination[1][0] = horizontal[3];
combination[1][1] = horizontal[0];
combination[1][2] = horizontal[1];
combination[1][3] = horizontal[2];
combination[1][3] = index;
}
if(direct == "left") {
content.gotoAndStop(combination[1][2]);
index = combination[1][0];
combination[1][0] = horizontal[1];
combination[1][1] = horizontal[2];
combination[1][2] = horizontal[3];
combination[1][3] = horizontal[0];
combination[3][1] = index;
}
}
Но в один прекрасный момент кубик начинает переворачиватся на ту же грань. То есть не менять положение. Не могу понять в чём причина.