Просмотр полной версии : Как сделать при нажатии кнопки, справа выезжает квадрат, при нажатии другой кнопки он
Воспроизводиться мувик справа выезжает квадрат в середине его надпись,и становиться в центре.
Есть 3 кнопки(например: Кнопка1, Кнопка2, Кнопка3)
Каждой кнопке соотвецтвует свой квадрат.
Как сделать, чтобы при нажатии на кнопку, например 2, этот квадрат уезжел влево за зону видимости , а справа выезжал и останавливался в центре другой квадрат, так для всех кнопок.
Нажимаю, на кнопку один, выезжает квадрат 1, нажимаю на кнопку 3, квадратик 1 уезжает влево, а справа появляеться квадратик 3 и становиться в центре.
Как такое сделать?
Dendroid
10.11.2006, 22:58
Для начала надо разбить общую задачу на подзадачи, потом попытаться сделать это как сам понимаешь, а вот когда возникнут трудности в отдельных действиях - спрашивать конкретные вопросы.
А то получилось: "Я хочу сделать автомобиль, как бы мне так сделать, чтобы колёса вертились одну сторону, двери открывались в другую, а по центру чтобы такий классный электрический спидометр был? Ну и вообще чтобы ездило. А то я автомобили никогда не делал..." :wacko:
Попробую упростить вопрос.
Есть сайт, на котором находиться 3 кнопки(например:Главная, Картинки, О себе)
Когда заходим на сайт справа выезжает мувик(лист бумаги, на котором написано - Главная )
При нажатии на кнопку О себе, этот мувик уезжает влево, а справа выезжает другой лист бумаги и становиться на его место, на этом листе находиться другая информация, например О себе.
При нажатии на кнопку Картинки, мувик старый уезжает влево,а справа появляеться другой, на котором находяться картинки.
Картинки и мувики я сделаю, как сделать такие переходы, чтобы мувик при нажатии уезжал влево, а справа появляся другой, и так для разных кнопок
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;
}
Если есть вопросы, пишите.
Исходник прикрепляю...
выдает ошибку
**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 39: There is no property with the name 'onMotionFinished'.
currentPanelTween.onMotionFinished = function()
Total ActionScript Errors: 1 Reported Errors: 1
2 Dessert:
Только что посмотрел прикреплённый архив, всё отлично работает. У вас какой Флеш?
проверил в 8 все работает, спасибо большое!!!!!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.