Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как активировать кнопку при наведении мыши? (http://www.flasher.ru/forum/showthread.php?t=149029)

stason85i 18.01.2011 11:13

Как активировать кнопку при наведении мыши?
 
Всем привет. Помогите, пожалуйста доделать анимацию, для кнопки. Клип создал, а со скриптом проблема. Нужна активация при наведении и наоборот. Обшарил весь инет, пришёл к вам, как к специалистам этого дела.
Это нужно для сайта нашей фирмы, попросили меня, а сам я дизайнер-верстальщик. Вот такие дела)
Заранее спасибо. Файл http://*********/30355797

DenverusIm 18.01.2011 12:07

вообще во flash есть специальный символ кнопка
он позволяет в четырёх кадрах создать кнопку с возможностью реагировать на события Up, Over, Down, hit
но если нужна более серьёзная анимация, то на временной шкале рисуете поведение кнопки и при помощи примерно такого кода управляете передвижением
Код AS3:

package scripts.components.buttons
{
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
        import flash.events.Event;
        import flash.ui.Mouse;
        import flash.ui.MouseCursor;
        public class Button1 extends MovieClip
        {
                //*********************************************************************
                // 1. Пременные класса
                private var mouse:Boolean = false;// true указатель мыши над кнопкой
                //*********************************************************************
                // 2. Конструктор класса
                public function Button1()
                {
                        // останавливаем клип
                        stop();
                        // присваиваем название кнопке и устанавливаем параметры текстового поля
                        labelText();
                        labelButton.mouseEnabled = false;
                        // ставим слушатель события наведения курсора на кнопку
                        addEventListener(MouseEvent.MOUSE_OVER, mouseOverListener);
                }
                //**********************************************************************
                // 3. Функции слушателей событий
                // 3.1 Наведение курсора мыши на кнопку
                private function mouseOverListener(e:MouseEvent)
                {
                        // меняем указатель мыши на руку и направление проигрывания клипа
                        Mouse.cursor = MouseCursor.BUTTON;
                        mouse = true;
                        // добавляем слушателей событий для кнопки
                        addEventListener(Event.ENTER_FRAME, frameListener);
                        addEventListener(MouseEvent.MOUSE_OUT, mouseOutListener);
                        addEventListener(MouseEvent.CLICK, clickListener);
                }
                // 3.2 убирание курсора мыши с кнопки
                private function mouseOutListener(e:MouseEvent)
                {
                        // меняем курсор мыши на стрелку и направление проигрывания коипа
                        Mouse.cursor = MouseCursor.ARROW;
                        mouse = false;
                }
                // 3.3 функция проигрывания клипа кнопки
                private function frameListener(e:Event)
                {
                        // при курсоре мыши над кнопкой проигрывание вперёд при убирании назад
                        if (mouse)
                        {
                                nextFrame();
                        }
                        else
                        {
                                prevFrame();
                        }
                        // в случае если указатель мышки вышел за пределы кнопки и проигрался клип до конца
                        // удаляем лишние слушатели
                        if (! mouse && currentFrame == 0)
                        {
                                removeEventListener(MouseEvent.MOUSE_OUT, mouseOutListener);
                                removeEventListener(Event.ENTER_FRAME, frameListener);
                                removeEventListener(MouseEvent.CLICK, clickListener);
                        }
                }
                // 3.4 функция обработки нажатия
                private function clickListener(e:MouseEvent)
                {
                        trace('кнопка нажата');
                }
                //********************************************************************
                // 4 Открытые методы класса
                // 4.1 Присвоение названия кнопки
                public function labelText(value:String="имя кнопки 20 симв."):void{
                        // проверяем длину введённого значения конопки если она не превышает 20 символов
                        // вводим её значение на кнопку
                        if (value.length<20){
                                labelButton.text=value;
                        }else{
                                labelButton.text="не более 20 символов";
                        }
 
                }
        }
}

что типа того но для того что бы реально ответить необходимо видеть что именно вы нарисовали и понимать как должна отрабатывать анимация

Добавлено через 3 минуты
вообще во flash есть специальный символ кнопка
он позволяет в четырёх кадрах создать кнопку с возможностью реагировать на события Up, Over, Down, hit
но если нужна более серьёзная анимация, то на временной шкале рисуете поведение кнопки и при помощи примерно такого кода управляете передвижением
Код AS3:

package scripts.components.buttons
{
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
        import flash.events.Event;
        import flash.ui.Mouse;
        import flash.ui.MouseCursor;
        public class Button1 extends MovieClip
        {
                //*********************************************************************
                // 1. Пременные класса
                private var mouse:Boolean = false;// true указатель мыши над кнопкой
                //*********************************************************************
                // 2. Конструктор класса
                public function Button1()
                {
                        // останавливаем клип
                        stop();
                        // присваиваем название кнопке и устанавливаем параметры текстового поля
                        labelText();
                        labelButton.mouseEnabled = false;
                        // ставим слушатель события наведения курсора на кнопку
                        addEventListener(MouseEvent.MOUSE_OVER, mouseOverListener);
                }
                //**********************************************************************
                // 3. Функции слушателей событий
                // 3.1 Наведение курсора мыши на кнопку
                private function mouseOverListener(e:MouseEvent)
                {
                        // меняем указатель мыши на руку и направление проигрывания клипа
                        Mouse.cursor = MouseCursor.BUTTON;
                        mouse = true;
                        // добавляем слушателей событий для кнопки
                        addEventListener(Event.ENTER_FRAME, frameListener);
                        addEventListener(MouseEvent.MOUSE_OUT, mouseOutListener);
                        addEventListener(MouseEvent.CLICK, clickListener);
                }
                // 3.2 убирание курсора мыши с кнопки
                private function mouseOutListener(e:MouseEvent)
                {
                        // меняем курсор мыши на стрелку и направление проигрывания коипа
                        Mouse.cursor = MouseCursor.ARROW;
                        mouse = false;
                }
                // 3.3 функция проигрывания клипа кнопки
                private function frameListener(e:Event)
                {
                        // при курсоре мыши над кнопкой проигрывание вперёд при убирании назад
                        if (mouse)
                        {
                                nextFrame();
                        }
                        else
                        {
                                prevFrame();
                        }
                        // в случае если указатель мышки вышел за пределы кнопки и проигрался клип до конца
                        // удаляем лишние слушатели
                        if (! mouse && currentFrame == 0)
                        {
                                removeEventListener(MouseEvent.MOUSE_OUT, mouseOutListener);
                                removeEventListener(Event.ENTER_FRAME, frameListener);
                                removeEventListener(MouseEvent.CLICK, clickListener);
                        }
                }
                // 3.4 функция обработки нажатия
                private function clickListener(e:MouseEvent)
                {
                        trace('кнопка нажата');
                }
                //********************************************************************
                // 4 Открытые методы класса
                // 4.1 Присвоение названия кнопки
                public function labelText(value:String="имя кнопки 20 симв."):void{
                        // проверяем длину введённого значения конопки если она не превышает 20 символов
                        // вводим её значение на кнопку
                        if (value.length<20){
                                labelButton.text=value;
                        }else{
                                labelButton.text="не более 20 символов";
                        }
 
                }
        }
}

что типа того но для того что бы реально ответить необходимо видеть что именно вы нарисовали и понимать как должна отрабатывать анимация

stason85i 18.01.2011 12:35

спасибо, но я новичок в этом деле))) специальность не та) я только заню куда вставлять этот код, а дальше полный ноль, поэтому и пришёл за помощью к вам.
Файл http://*********/30355797

goodguy 18.01.2011 12:37

Вот эти манипуляции вообще не понятны:
Код AS3:

Mouse.cursor = MouseCursor.BUTTON;
                        mouse = true;

Какой в них смысл? Достаточно внутри кнопки добавить одну строчку:
Код AS3:

this.buttonMode = true;

И курсор сам будет меняться на палец и обратно, при поднесении к кнопке.

stason85i, файл лучше закинуть на http://*********/ а ссылку выложить сюда. Так быстрее помогут.

stason85i 18.01.2011 12:44

http://*********/30355797
Залил
Помогите, кто чем может.

goodguy 18.01.2011 14:26

А что конкретно должно происходить? Эти штуки должны начать крутиться?

stason85i 18.01.2011 14:34

да, и лампочки поочерёдно загорают. вроде всё

goodguy 18.01.2011 14:43

http://*********/30356505

stason85i 18.01.2011 14:53

Спасибо большое, выручил.
Если что обращайся, помогу с дизайном или вёрсткой)))

Добавлено через 5 минут
А как ты собрал все кадры в один?)


Часовой пояс GMT +4, время: 23:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.