[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Кнопка, которая остается в нажатом состоянии
DooDLeZДата: Воскресенье, 24.05.2009, 11:44 | Сообщение # 1
Admin
Группа: Проверенные
Сообщений: 805
[ 21 ]
:-)
В этом уроке мы сконструируем кнопку (фактически это муви клип, который работает как кнопка, и мы не будем делать кнопку, мы будем создавать меню), которая имеет состояние over , состояние out и состояние down. Кнопка будет оставаться в нажатом состоянии (down), когда будет кликнута (выделена), и поэтому выделенная кнопка будет отличаться по виду от других кнопок, чтобы пользователь знал точно, на какой странице он находится. Меню будет выглядеть таким образом:

Quote
<!--Flash 200+300+http://kedicik.ucoz.ru/mymenu/myButton.swf--><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" height="300" width="200"><param name="wmode" value="transparent"><param name="MOVIE" value="http://kedicik.ucoz.ru/mymenu/myButton.swf"><param name="PLAY" value="TRUE"><param name="LOOP" value="TRUE"><param name="QUALITY" value="HIGH"><param name="allowscriptaccess" value="never"><embed src="http://kedicik.ucoz.ru/mymenu/myButton.swf" allowscriptaccess="never" play="TRUE" loop="TRUE" quality="HIGH" wmode="transparent" height="300" width="200"></object><!--End Flash-->

1. Создайте новый файл File > New, выберите Flash file (ActionScript 3.0) и кликните Ok. Сохраните файл как myButton.fla.

2. Вставьте новый слой (Insert>Timeline>Layer), назовите слои, начиная сверху: actions и buttons. В панели Property установите frame rate= 30.

3. Выделите Rectangle tool, установите цвет обводки - без обводки, цвет заливки (у меня черный) и в слое buttons нарисуйте прямоугольник. Установите размеры прямоугольика следующие: width = 170, height = 40. Выделите прямоугольник и нажмите F8, чтобы конвертировать его в муви клип. Установите его имя about_btn, точка регистрации в левом верхнем углу и кликните Ok. В панели Property установите ее инстанс имя about_btn.

4. Дважды кликните по мувику about_btn, чтобы открыть его. Вставтьте 3 новых слоя и назовите их сверху: actions, labels, text и bg. Выделите черный прямоугольник, нажмите F8, чтобы конвертировать его в мувик и установите его имя bg.

5. В слое bg выделите кадр 2 и нажмите F6, чтобы вставить новый ключевой кадр, повторите этот шаг для кадров 9, 10, 11 и 18. Выделите кадр 9; кликните по черному прямоугольнику и в панели Property установите его свойство альфа 50%. Сделайте то же самое для кадров 10 и 11.
Теперь по правой кнопке меню между кадрами 2 и 9 выберите Create Motion Tween. Сделайте то же самое для интервала 11-18. Ваш слой bg должен выглядеть так:

6. Заблокируйте слой bg и выделите слой text. Из Toolbar возьмите Text tool, установите тип в static и на сцене кликните и напечатайте слово About. Выделите текстовое поле, нажмите F8, чтобы конвертировать его в мувик и установите его имя aboutTxt.
Положение мувика aboutTxt такое: x=5, а для y - разместите мувик в центре черного прямоугольника.

7. В слое text выделите кадр 2 и нажмите F6, чтобы вставить новый ключевой кадр, повторите этот шаг для кадров 9, 10, 11 и 18. Выделите кадр 9; кликните по мувику aboutTxt и в панели Property установите x=20. Сделайте то же самое для кадров 10 и 11.
Теперь по правой кнопке между кадрами 2 и 9 выберите Create Motion Tween. Сделайте то же самое для интервала 11-18.

8. В слое labels выделите кадр 2 и нажмите F6, чтобы вставить новый ключевой кадр, повторите этот шаг для кадров 10 и 11. Выделите кадр 2 и в панели Property установите название Frame - over, установите название для кадра 10 - down и для 11 кадра - out.

9. В слое actions выделите кадр 1, нажмите F9, чтобы открыть панель ActionScript и напишите stop();Выделите кадр 9, нажмите F6, чтобы вставить новый ключевой кадр, откройте панель ActionScript и напишите stop();.
Теперь наш about_btn создан полностью. Кнопка должна выглядеть внутри таким образом:

Кликните по Scene 1, чтобы вернуться на основную сцену. Мы построим еще две кнопки, чтобы в финале мы имели хорошее меню с тремя кнопками. Вы можете сделать кнопок больше, если хотите.

10. Кликните по about_btn на сцене, удерживая клавишу Alt, вытащите новую копию кнопки. По правой кнопке мыши по новой кнопке выберите Duplicate Symbol, установите имя кнопки portofolio_btn. В панели Property установите ее инстанс имя portofolio_btn.

11. Дважды кликните по portofolio_btn, нам нужно изменить текст. В слое text выделите кадр 1, правой кнопкой мыши по мувику aboutTxt выберите Duplicate Symbol, установите имя portofolioTxt. Теперь, дважды кликните по мувику portofolioTxt, чтобы открыть его, и измените текст на Portofolio.

12. Вернитесь к portofolio_btn, кликнув по синей стрелке слева над Timeline. В слое text выделите кадр 2, правой кнопкой мыши по мувику aboutTxt выберите Swap Symbol, выберите portofolioTxt и кликните Ok. Повторите этот процесс для кадров 9, 10, 11 и 18.
Наша вторая кнопка готова. Сейчас у нас две кнопки: About и Portofolio. Третья кнопка для вас, следуйте шагам от 10 до 12 чтобы сделать кнопку Contact.

13. Вернитесь на основную сцену, теперь вы должны иметь три кнопки. Выделите кадр 1 из слоя actions и нажмите F9, чтобы открыть панель ActionScript, скопируйте и вставьте код, приведенный ниже.

Code

stage.frameRate = 30;
//---- добавляем кнопки к массиву --------
var buttonsArray:Array = [about_btn,portofolio_btn,contact_btn];

//----цикл в массиве buttonsArray-----
//----установим некоторые свойства и добавим события кнопкам----
function setButtons():void {
for (var i:int=0; i<buttonsArray.length; i++) {
   buttonsArray[i].id = i;
   buttonsArray[i].buttonMode = true;
   buttonsArray[i].mouseChildren = false;
   buttonsArray[i].mouseEnabled = true;
   buttonsArray[i].addEventListener(MouseEvent.ROLL_OVER,playOver);
   buttonsArray[i].addEventListener(MouseEvent.ROLL_OUT,playOut);
   buttonsArray[i].addEventListener(MouseEvent.CLICK,doClick);
}
}
//----выполняется, когда мышь наводится над кнопкой----
function playOver(event:MouseEvent):void {
event.currentTarget.gotoAndPlay("over");
}
//----выполняется, когда мышь уходит с кнопки----
function playOut(event:MouseEvent):void {
event.currentTarget.gotoAndPlay("out");
}
//----выполняется, когда мышь кликает кнопку-----
function doClick(event:MouseEvent):void{
   //----установим переменную currentBtn равную-----
//----идентификатору кнопки (id) , которая была кликнута-----
   var currentBtn:int = event.currentTarget.id;
   //----вызываем функцию setSelectedBtn
   setSelectedBtn(currentBtn);
}
/*проверим, какая кнопка была кликнута,
если id , переданная в функцию setSelectedBtn,
идентична id кликнутой кнопки,
мы полагаем, что кнопки находятся в положении нажатой down (выделенная)
и удаляем все события, добавленные к ней*/    
function setSelectedBtn(id:int):void{
for (var i:int=0; i< buttonsArray.length; i++) {
   if (id == i) {
   buttonsArray[i].gotoAndStop("down");
   buttonsArray[i].buttonMode = false;
   buttonsArray[i].mouseEnabled = false;
   buttonsArray[i].removeEventListener(MouseEvent.ROLL_OVER,playOver);
   buttonsArray[i].removeEventListener(MouseEvent.ROLL_OUT,playOut);
   buttonsArray[i].removeEventListener(MouseEvent.CLICK,doClick);
   } else {
   if(buttonsArray[i].currentLabel =="down"){
   buttonsArray[i].gotoAndPlay("out");
   }
   buttonsArray[i].buttonMode = true;
   buttonsArray[i].mouseEnabled = true;
   buttonsArray[i].addEventListener(MouseEvent.ROLL_OVER,playOver);
   buttonsArray[i].addEventListener(MouseEvent.ROLL_OUT,playOut);
   buttonsArray[i].addEventListener(MouseEvent.CLICK,doClick);
   }
}
}
//----вызываем функцию setButtons ----
setButtons();

Это все. Не знаю, нужен ли такой урок?


IP админа скрыт!
  • Страница 1 из 1
  • 1
Поиск: