2 Dessert:
Вот пример с несколькими кнопками и выезжающими панелями (прямоугольными мувиклипами). Пока не закончится до конца движение очередной панели, нажать новую кнопку нельзя.
Код примера вставить на пустой кадр таймлайна _root'а:

Код:
import mx.transitions.Tween;
import mx.transitions.easing.*
var buttonsLeft:Number = 10;
var buttonsTop:Number = 10;
var buttonsWidth:Number = 100;
var buttonsHeight:Number = 20;
var buttonsInterval:Number = 10;
var buttonsNumber:Number = 5;
var buttonsColor:Number = 0xff0000;
var buttonsBaseName:String = "myButton";
var currentPanel:Number = 0;
var panelsLeft:Number = 10;
var panelsTop:Number = 160;
var panelsWidth:Number = 530;
var panelsHeight:Number = 230;
var panelsSpeed:Number = 60;
var panelsColor:Number = 0x0000ff;
var panelsBaseName:String = "myPanel";
var panelsMoving:Boolean = false;
createPanel(currentPanel, panelsLeft, panelsTop);
for (var index:Number = 0; index < buttonsNumber; index++)
{
var newButtonName:String = buttonsBaseName + index;
var newButtonClip:MovieClip = createRectangleMovieClip(newButtonName, this, this.getNextHighestDepth(), buttonsLeft, buttonsTop + index * (buttonsHeight + buttonsInterval), buttonsWidth, buttonsHeight, buttonsColor, 100);
newButtonClip.id = index;
newButtonClip.onRelease = function()
{
if (this.id != currentPanel && !panelsMoving)
{
panelsMoving = true;
var currentPanelName:String = panelsBaseName + currentPanel;
var currentPanelClip:MovieClip = this._parent[currentPanelName];
var currentPanelTween:Tween = new Tween(currentPanelClip, "_x", Strong.easeOut, currentPanelClip._x, -currentPanelClip._width, panelsSpeed, false);
currentPanelTween.onMotionFinished = function()
{
this.obj.removeMovieClip();
panelsMoving = false;
};
var newPanelClip:MovieClip = createPanel(this.id, Stage.width, panelsTop);
var newPanelTween:Tween = new Tween(newPanelClip, "_x", Strong.easeOut, newPanelClip._x, panelsLeft, panelsSpeed, false);
currentPanel = this.id;
}
};
}
function createPanel(panelIndex:Number, panelX:Number, panelY:Number):MovieClip
{
var newPanelName:String = panelsBaseName + panelIndex;
var newPanel:MovieClip = createRectangleMovieClip(newPanelName, this, this.getNextHighestDepth(), panelX, panelY, panelsWidth, panelsHeight, panelsColor, 100);
return newPanel;
}
function createRectangleMovieClip(newName:String, parentClip:MovieClip, parentClipDepth:Number, newX:Number, newY:Number, newWidth:Number, newHeight:Number, newColor:Number, newAlpha:Number):MovieClip
{
var newClip:MovieClip = parentClip.createEmptyMovieClip(newName, parentClipDepth);
newClip.beginFill(newColor);
newClip.moveTo(0, 0);
newClip.lineTo(newWidth, 0);
newClip.lineTo(newWidth, newHeight);
newClip.lineTo(0, newHeight);
newClip.lineTo(0, 0);
newClip.endFill();
newClip._x = newX;
newClip._y = newY;
newClip._alpha = newAlpha;
return newClip;
}
Если есть вопросы, пишите.
Исходник прикрепляю...