Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   двух сторонняя анимация кнопки (http://www.flasher.ru/forum/showthread.php?t=88296)

esc 20.11.2006 23:01

двух сторонняя анимация кнопки
 
Находил много тем по поиску, но так ничего под себя и не смог сделать нормально.
Есть кнопка. В ней на овер вставлен муви клип, в котором идёт анимация простая на не сколько кадров. Так вот мне надо чтобы при наведении анимация проигрывалась а при отпускании обратно плавно откатывалась (банально знаю, но ничего не помогает) + ко всему надо что при наведении анимация не просто проигрывалсь а при снятие мышки обратно откатывалась, надо чтобы она даже при быстром наведении проигрывалась до конца а потом откатывалсь обратно. Тоесть если даже юзер задержал на кнопке мышку на долю секунды анимация должна проиграться до конца а потом вернуться начальное положение. Помогите пожалуйста, уже много тем и исходников перерыл, но ничего не сделать. Очень надо

Котяра2006 20.11.2006 23:10

Вложений: 1
Попробуй вот это

esc 20.11.2006 23:40

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

miramax 21.11.2006 00:52

Цитата:

Сообщение от esc
анимация при наведении должна в любом случае доходить до конца...

Надо писать класс который отслеживает события мыши, и потом плавно по одному кадру, проходит мувик до нужного кадра. Для этого нужно по событию onEnterFrame принудительно менять свойство _currentframe. Что бы прокручивать мувиклип к нужному положению.

lowka 21.11.2006 00:59

Вложений: 1
пример.

+
исправлена одна неточность.

D12 21.11.2006 01:40

Вложений: 1
Код:

Go_frame = 1;
Control = 0;
_root.rolic.onEnterFrame = function() {
        if (Control == 1) {
                (Go_frame<=this._totalframes) ? Go_frame += 1 : Control=2;
        }
        if (Control == 2) {
                (Go_frame>=1) ? Go_frame -= 1 : Control=0;
        }
        this.gotoAndStop(Go_frame);
        ////////////////////////////////////
        this.onRollOver = function() {
                if (Control == 0) {
                        Control = 1;
                }
        };
};

Держи, все так как ты спрашивал =)

O'Fox 21.11.2006 10:47

нет, он хочет чтобы обратная анимация начиналась когда мыщь уходит с объекта

esc 21.11.2006 19:04

1. анимация проигрывается доконца при наведенее и замирает на промежуточном кадре, тоесть останавливается когда пройдёт прямая анимация в том случае если на кнопке остаётся мышь, после убирания мыши анимация идёт в обратном порядке тоесть до начального положения.
2. анимация проигрывается до конца, даже если произошло секундное наведение мыши, тоесть если коснулась мышь кнопки анимация проигрывается доконца в любом случае, только в данной ситуации не происходит остановки анимации на промежуточном кадре
----------------------------------------------------------

iNils 21.11.2006 19:14

Цитата:

Сообщение от esc
2. анимация проигрывается до конца, даже если произошло секундное наведение мыши, тоесть если коснулась мышь кнопки анимация проигрывается доконца в любом случае, только в данной ситуации не происходит остановки анимации на промежуточном кадре

Вот этот пункт смущает меня. Не юзабильно. А что будет если пользователь навел, потом сразу же навел и опять навел и тд?
Обычно схема такая:
Есть последовательность анимации, где 4 это конечный кадр, а 1 и 7 одинаковые

1-2-3-[4]-5-6-7

Если навели мышку, то пошла анимации 1-2-3-4-стоп
Отвели 4-5-6-переход на 1 (но код перезода стоит на 7)
Если же невести мышку и потом сразу отвести, и анимация дошла скажем до кадра 3, то когда убираем, анимация идет с кадра 5.
Пусть она успела дойти до 6 и мышку опять навели, тогда она начинается с кадру 2.

esc 21.11.2006 19:46

ясно, я был бы признателен если бы не просто кидали примеры, а описали как сделать.


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

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