Попробуй первый фрейм переписать так:

Код:
_root.image._visible = false;
fscommand("showmenu", "false");
function scramble() {
for (var i = 1; i<=49; i++) {
_root["piece"+i]._x = Math.floor(Math.random()*400)+360;
_root["piece"+i]._y = Math.floor(Math.random()*480)+40;
_root["piece"+i]._rotation = Math.floor(Math.random()*4)*90;
clearInterval(scr);
}
}
function RotateDisplayOrDrag(whichPiece) {
if (Key.isDown(Key.SHIFT)) {
_root[whichPiece]._rotation += 90;
} else {
startDrag(_root[whichPiece], false, 20, 20, 780, 580);
}
}
function Snap(whichPiece) {
if (whichPiece._x>40 && whichPiece._x<320 && whichPiece._y>40 && whichPiece._y<320) {
var xSnapNumber = Math.floor((whichPiece._x-20)/40);
var ySnapNumber = Math.floor((whichPiece._y-20)/40);
if (((whichPiece._x-20)%40)/40<.5) {
whichPiece._x = xSnapNumber*40+20;
} else {
whichPiece._x = (xSnapNumber+1)*40+20;
}
if (((whichPiece._y-20)%40)/40<.5) {
whichPiece._y = ySnapNumber*40+20;
} else {
whichPiece._y = (ySnapNumber+1)*40+20;
}
}
}
function IsItDone() {
var columns = 7;
for (var i = 1; i<=49; i++) {
var row = Math.ceil(i/columns);
var column = i-((row-1)*columns);
with (this["piece"+i]) {
if (_x != column*40+20 || _y != row*40+20 || _rotation != 0) {
break;
}
}
}
if (i == 50) {
trace("YES!!!!!!!!!");
nextFrame;
}
}
scr = setInterval(scramble, 800);
В Flash (до Flash 2004 MX) использование второй кнопки - не есть хорошо.
В твоем случае лучше использовать SHIFT. Это удобнее.