Показать сообщение отдельно
Старый 11.11.2006, 04:52
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 5  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
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;
}
Если есть вопросы, пишите.
Исходник прикрепляю...
Вложения
Тип файла: zip buttonsMovement.zip (6.4 Кб, 130 просмотров)
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого


Последний раз редактировалось Хемуль; 11.11.2006 в 04:55.