On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Flash переменные и их использование.

Автор: © JeF

Всё труднее и труднее мне удаётся придумывать новые темы для уроков, я даже не знаю, на сколько мня ещё хватит, но если Вы это читаете, значит, я, всё-таки кое что придумал.

Когда я только начинал учить Flash, мне было не совсем понятно, для чего нужны переменные и как их можно реально использовать на практике. Если Вам это тоже пока неясно, прочитайте этот урок, и я надеюсь, Вы всё поймёте.
Как обычно мы сделаем ролик, который будет демонстрировать работу переменных. Представьте, что Вам нужно сделать три кнопки. Когда происходит нажатие на какую-нибудь из них, происходит плавное появление текста, а при нажатии на любую другую кнопку этот текст плавно исчезает, а на его месте постепенно возникает другой. Как же сделать так, чтобы программа 'знала', какой текст был на экране предыдущим? Для этого можно использовать переменные. Давайте сделаем такой эффект.

Создайте новый ролик. В нём создайте три слоя. Первый назовите 'action', второй - 'buttons' и третий -'texts'. В слой 'buttons' поместите три кнопки с названиями 'but1', 'but2' и 'but3' (какие не имеет значения). Теперь создайте три символа типа movie clip с названиями 'text1', 'text2' и 'text3' и поместите туда Ваши тексты. К каждому тексту сделайте motion tween, чтобы он плавно появлялся и так же плавно исчезал. Ключевые кадры расположите так, как показано на рисунке.




На action-ы пока не обращайте внимания, к ним мы вернёмся позже. В первом кадре каждого мувика - текста, сам текст должен быть невидим (alpha=0). Когда все тексты будут готовы, поместите их на главную сцену и задайте имена 'text1', 'text2' и 'text3'.
Теперь, когда вся графическая часть готова, займёмся составлением сценариев. На главной сцене, в слое 'actions' поместите такой action:

=================================-
i = 0;
iold = 0;
=================================-

Здесь мы объявляем переменные и присваиваем им значения. Теперь переходим к кнопкам:
Первой кнопке назначьте такой 'action':

==============================-
on (release) {
if (iold == 2) {
text2.gotoAndPlay(16);
} else if (iold == 3) {
text3.gotoAndPlay(16);
} else if (iold == 0) {
text1.gotoAndPlay(1);
}
iold = 1;
i = 1;
}
=============================-

Здесь мы, в зависимости от значения переменной 'iold' назначаем 'исчезание' соответствующего текста, а чтобы с самого начала проявить текст данной кнопки, делаем проверку, равно ли значение 'iold' нулю. Затем мы передаём переменным 'i' и 'iold' новые значения. На остальных кнопках действия будут примерно такими же.

Action для второй кнопки:

===============================-
on (release) {
if (iold == 3) {
text3.gotoAndPlay(16);
} else if (iold == 1) {
text1.gotoAndPlay(16);
} else if (iold == 0) {
text2.gotoAndPlay(1);
}
i = 2;
iold = 2;
}
=============================-

И action для третей кнопки:

============================-
on (release) {
if (iold == 0) {
text3.gotoAndPlay(1);
} else if (iold == 1) {
text1.gotoAndPlay(16);
} else if (iold == 2) {
text2.gotoAndPlay(16);
}
i = 3;
iold = 3;
}
===========================-

Но эти действия лишь 'испаряют' тексты, а нам нужно ещё и последующее их появление. Переходите к редактированию символов текста (сейчас речь о символе 'text1') и задайте такие действия:

Action для первого кадра символа 'text1':

==================================-
stop ();
_root.i = 1;
==================================-
Это предотвратит произвольное проигрывание клипа и выставит значение переменной 'i'.

В 15 кадре также поставьте стоп для того чтобы текст останавливался, когда полностью исчезнет. Теперь нужно дать программе знать какой текст 'проявлять' после исчезновения текущего текста. Для этого в последнем кадре символа 'text1' поставим такой action:

=======================-
if (_root.i == 2) {
_root.text2.gotoAndPlay(1);
} else if (_root.i == 3) {
_root.text3.gotoAndPlay(1);
}
=======================-
Эти строки проверяют текущее значение переменной 'i' и в зависимости от результатов проигрывается соответствующий символ. Для остальных символов действия будут примерно такими же, меняться будут только имена. Общим будет только action 'stop();' для 15 кадра каждого символа. Вот остальные действия:

Action для первого кадра символа 'text2':

===================================-
stop ();
_root.i = 2;
===================================-

Action для последнего кадра символа 'text2':

===================================-
if (_root.i == 1) {
_root.text1.gotoAndPlay(1);
} else if (_root.i == 3) {
_root.text3.gotoAndPlay(1);
}
==================================-

Action для первого кадра символа 'text3'

=================================-
stop ();
_root.i = 3;
=================================-

и action для последнего кадра символа 'text3':

==================================-
if (_root.i == 1) {
_root.text1.gotoAndPlay(1);
} else if (_root.i == 2) {
_root.text2.gotoAndPlay(1);
}
=================================-

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



Литература по FLASH