Форум 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=66853)

i549dm 18.07.2005 17:41

нужна стробирующая функция
 
Добрый день, флешеры.
Есть вот такой вот вопросик: как на AS сделать стробирующую функцию для мувика? Например:
Код:

9 кадров mc._visible=true;
9 кадров mc._visible=false;
8 кадров mc._visible=true;
8 кадров mc._visible=false...
... и так до нуля.

Можно и с _alpha (мне всё равно). Количество кадров должно задаваться во входных параметрах.
Спасибо за помощь.

З.Ы. А если можно, то и совместить с плавным уходом _alpha до нуля :)

KUZEN 18.07.2005 17:47

Можно поставить прямо в мувике в нужных кадрах this._alpha = 0; или ... =100;
А можно допустим проверять на onEnterFrame() на каком кадре находится в данный мувик (короче отслеживать _currentframe)

i549dm 18.07.2005 18:43

Так вот в этом то и проблема - можно ли сделать это циклом, т.е. коротким кодом. А ослеживание у меня действительно пойдет через _currentframe, т.к. анимация сделана полностью на AS - onEnterFrame...

Отсюда входные параметры функции:
мувик;
длительность (как в первом посте).

Есть ли мысли насчет кода?

KUZEN 18.07.2005 18:45

ты говоришь что анимация сделана с помощью As , тогда про какие кадры ты говоришь ?

i549dm 18.07.2005 18:51

Вот пример кода (лежит в первом и единственном фрейме):
Код:

var n = 0;
this.onEnterFrame = function() {

        if (n == 0) {                      //Начальные параметры
                this.karta._x = 180;
                this.firm._x = -50;
                this.wap._alpha = 0;
                ramka._yscale = 100;
        }

        if (n==5) {                          //Начало анимации
                tweenOut (karta,180,60,45);
                tweenOut (firm,-50,60,45);
        }
       
//Тут остальная анимация

        n++;
        if (n == 300) {
                n = 0;
        }               
};

Переменная n если не ошибаюсь - номер кадра? :confused:

KUZEN 18.07.2005 18:57

ну если n это номер кадра, тогда не пойму суть вопроса, когда у тебя по сути и есть то что ты спрашиваешь ...

i549dm 18.07.2005 19:00

ага, фигушки. _currentframe трейсит 1 на протяжении всей анимации. Тогда вопрос жэ возникает, по какому принципу устанавливается скорость анимации (у меня нету setInterval ни в одной строчке)...

... АлкогОль - причина всех бед...

KUZEN 18.07.2005 19:37

_currentframe можно определить только у мувиков созданных в ручную с определённым количеством кадров, а если ты просто с помощью кода двигаешь мувик куда нить , то никаких физических кадров тут нет ...

KUZEN 18.07.2005 19:38

А то что трейсит 1 то это зничит что в муве кот ты двигаешь только оди кадр или несколько, но на первом стоит stop(); ... короче давай исход ...

i549dm 19.07.2005 14:24

Вложений: 1
Код лежит чуть выше (5ый пост), я просто вырезал оттуда значительную часть анимации, она построена на mx.transitions.easing:
Код:

function tweenOut(mc, begin, end, frames) {
        Tween = new mx.transitions.Tween(mc, "_x", mx.transitions.easing.Regular.easeOut, begin, end, frames);
}
function tweenIn(mc, begin, end, frames) {
        Tween = new mx.transitions.Tween(mc, "_x", mx.transitions.easing.Regular.easeIn, begin, end, frames);
}

остальная анимация типа такого:
Код:

        if (n>120 && n<180){
                wap._alpha +=2;
        }

Кадр у меня один, несколько слоёв. Исходник прилагается.


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

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