Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   програмное движение/ изменение (http://www.flasher.ru/forum/showthread.php?t=60453)

mariaiva 09.07.2004 16:58

програмное движение/ изменение
 
Подскажите пож-та, как сделать программно плавое движение/изменение..... хочется сделать это в функции, которая могла-бы вызываться из любого места клипа....

Greben 09.07.2004 17:03

Например:
Код:

var blurMe = true;
var step = 5;
       
function blur() {
        if ((this._alpha>=0) && (blurMe == true)) {
                this._alpha -= step;
        } else {
                blurMe = false;
        }
        if ((this._alpha<=100) && (blurMe == false)) {
                this._alpha += step;
        } else {
                blurMe = true;
        }
}
this.onEnterFrame = this.blur;


Iv 09.07.2004 22:15

http://www.sharedfonts.com/tests/001mac_menu.html

- здесь сделана вся анимация с помощью одной функции (ниже).
Параметры ее просты:
prop - строка, название свойства. например "_x"
targ - число, значение к которому должно стремиться свойство.
friction - число от 0 до 1, сопротивление среды. - необязательный параметр, по умолчанию имеет значение 0.3
elasticity - число от 0 до 1, эластичность. - необязательный параметр, по умолчанию имеет значение 0.95.


Код:

Object.prototype.elasticProp = function(prop, targ, friction, elasticity) {
        var n = (this._target+prop), e = arguments.callee, t = clearInterval(e[n]), t = this, step, friction = 1-(friction || e.friction), elasticity = elasticity || e.elasticity, intr = e[n]=setInterval(function () {
                step += (targ-t[prop])*elasticity, t[prop] += (step *= friction);
                if (Math.abs(step)>.05 || Math.round(t[prop]) != Math.round(targ)) {
                        return;
                }
                t[prop]=targ, clearInterval(intr), t.onElasticPropEnd(prop, targ);
        }, 10);
};
// set Default values of elasticProp
elasticProp.friction = .3;
elasticProp.elasticity = .95;

ПРИМЕР использования:

сделай мувик и повесть на него
onClipEvent(load) {
this.elasticProp("_x", 200, .4, .9)
}

- затем меняй аргументы и смотри что получится.

++ по достижении нужного результата, функция вызывает функцию в том же объекте, с именем onElasticPropEnd.

например добавь:

onClipEvent(load) {
this.onElasticPropEnd = function () {
trace(arguments)
}
}


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

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