PDA

Просмотр полной версии : Как сделать при нажатии кнопки, справа выезжает квадрат, при нажатии другой кнопки он


Dessert
10.11.2006, 22:48
Воспроизводиться мувик справа выезжает квадрат в середине его надпись,и становиться в центре.
Есть 3 кнопки(например: Кнопка1, Кнопка2, Кнопка3)
Каждой кнопке соотвецтвует свой квадрат.
Как сделать, чтобы при нажатии на кнопку, например 2, этот квадрат уезжел влево за зону видимости , а справа выезжал и останавливался в центре другой квадрат, так для всех кнопок.
Нажимаю, на кнопку один, выезжает квадрат 1, нажимаю на кнопку 3, квадратик 1 уезжает влево, а справа появляеться квадратик 3 и становиться в центре.
Как такое сделать?

Dendroid
10.11.2006, 22:58
Для начала надо разбить общую задачу на подзадачи, потом попытаться сделать это как сам понимаешь, а вот когда возникнут трудности в отдельных действиях - спрашивать конкретные вопросы.


А то получилось: "Я хочу сделать автомобиль, как бы мне так сделать, чтобы колёса вертились одну сторону, двери открывались в другую, а по центру чтобы такий классный электрический спидометр был? Ну и вообще чтобы ездило. А то я автомобили никогда не делал..." :wacko:

Dessert
10.11.2006, 23:13
Попробую упростить вопрос.
Есть сайт, на котором находиться 3 кнопки(например:Главная, Картинки, О себе)
Когда заходим на сайт справа выезжает мувик(лист бумаги, на котором написано - Главная )
При нажатии на кнопку О себе, этот мувик уезжает влево, а справа выезжает другой лист бумаги и становиться на его место, на этом листе находиться другая информация, например О себе.
При нажатии на кнопку Картинки, мувик старый уезжает влево,а справа появляеться другой, на котором находяться картинки.

Картинки и мувики я сделаю, как сделать такие переходы, чтобы мувик при нажатии уезжал влево, а справа появляся другой, и так для разных кнопок

Dessert
11.11.2006, 02:19
Народ помогите плиззззз

Хемуль
11.11.2006, 04:52
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;
}

Если есть вопросы, пишите.
Исходник прикрепляю...

Dessert
11.11.2006, 14:31
выдает ошибку
**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

Хемуль
11.11.2006, 22:36
2 Dessert:
Только что посмотрел прикреплённый архив, всё отлично работает. У вас какой Флеш?

Dessert
11.11.2006, 22:52
проверил в 8 все работает, спасибо большое!!!!!