Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Почему мувик не реагирует на stop(); (http://www.flasher.ru/forum/showthread.php?t=158750)

Raksana 23.06.2011 11:37

Почему мувик не реагирует на stop();
 
Приветствую вновь братцы.

Еще давно я спрашивала как работать с prevFrame. Тогда вроде все получилось. В этот раз опять столкнулась с использованием обратного проигрывания анимации в мувике. Однако столкнулась с проблемой что мувик не реагирует на stop(); на таймлайне.

То есть по уму две кнопки, нажимаешь одну, мувик проигрывается вперед, нажимаешь другую, мувик резко начинает проигрывается назад. И естественно мувик должен останавливаться там где stop();

Вот исходник http://**********/12066731
С меня доброта : )

tsarapkabel 23.06.2011 12:56

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

nextBtn.buttonMode = true;
prevBtn.buttonMode = true;
 
nextBtn.addEventListener(MouseEvent.CLICK, btnClick);
prevBtn.addEventListener(MouseEvent.CLICK, btnClick);
 
var playForward:Boolean;
 
function btnClick(event:MouseEvent):void {
        if (event.target.name == "nextBtn") playForward = true;
        else playForward = false;
        addEventListener(Event.ENTER_FRAME, onEnter);
}
 
function onEnter (event:Event):void {
        if(playForward) btn.nextFrame();
        else btn.prevFrame();
}
 
btn.addFrameScript(13, onBtn13);
 
function onBtn13():void {
        removeEventListener(Event.ENTER_FRAME, onEnter);
}


Raksana 23.06.2011 13:53

tsarapkabel

Лучей добра тебе.
Только вот я так и не поняла, почему с таймлайна стопы не работают? Для чего таки извращения?

Жень Шень 24.06.2011 11:26

Вложений: 1
Привет!
Вариант попроще (с использованием меток). Можно жать кнопки и во время анимации.

tsarapkabel 24.06.2011 16:24

Цитата:

Сообщение от Raksana (Сообщение 1005908)
Почему с таймлайна стопы не работают?

Потому что стоит переход на следующий кадр по EnterFrame. Он срабатывает на единицу времени твоего frameRate.

Цитата:

Сообщение от Жень Шень (Сообщение 1006158)
Вариант попроще.

После второго next у меня продолжается разворачивание. :)

Жень Шень 24.06.2011 19:51

Цитата:

Сообщение от tsarapkabel (Сообщение 1006238)
После второго next у меня продолжается разворачивание. :)

Дальше кадра с меткой "13"? У меня никак не получилось.
Для стабильной работы (от частых беспорядочных нажатий надо изменить:
Код AS3:

function nextClick(event:MouseEvent):void {
        flag = true;
        if (btn.currentFrameLabel!="end") {
                // Если нажать во время обратного проигрывания остановим ENTER_FRAME
                btn.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
                btn.play();
        }
}

добавить flag = true;

Raksana 27.06.2011 12:01

tsarapkabel

Ааааа! блин! можно ли как-то вообще обойти этот бред с

Цитата:

Потому что стоит переход на следующий кадр по EnterFrame. Он срабатывает на единицу времени твоего frameRate.
Мне просто нужно еще в некоторых кадрах использовать таймер. То есть застопить анимацию и включить таймер, который отсчитает нужно кол-во мсек и запустит анимацию дальше.

Код:

stop();
function pause() {
        play();
}
setTimeout(pause, 6000);

И куда теперь пихать этот блок? *О*
В AS2 все было проще Т__Т

tsarapkabel 27.06.2011 17:55

Значит необходимо создавать таймер по определённому условию. Например:

Код AS3:

var functionFrame:uint = 135; //нужный frame
 
if (movieClip1.currentFrame == functionFrame) {
        var timer:Timer = new Timer(6000, 1); //через 6 сек 1 раз сработает функция timerFunction
        timer.addEventListener(TimerEvent.TIMER, timerFunction);
        timer.start();
}
 
function timerFunction (event:TimerEvent) {
        trace("works");
}

Это примитивно, лучше использовать currentFrameLabel.

Цитата:

Сообщение от Raksana (Сообщение 1006799)
В AS2 все было проще Т__Т

Ты говоришь про AS1. :)

Raksana 27.06.2011 18:34

tsarapkabel

Ни работает = \ Я конечно наверно туплю, но получилось как-то так.
http://**********/12597641

И да, остановка будет не только в одном фрейме. Шо не так то?

desancheg 28.06.2011 07:24

не знаю чем ты делал свой FLA он мне CS4 говорит (непредвиденый формат файла)


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

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