Просмотр полной версии : как сделать замедление scale'а
есть код:
on (rollOut) {
setProperty(this, _yscale, 45);
setProperty(this, _xscale, 45);
}
on (rollOver) {
setProperty(this, _yscale, 100);
setProperty(this, _xscale, 100);
}
который увеличивает при наведении объект. Но это происходит резко (сразу крупно или мелко). как сделать замедление scale'а. можно конечно создать мувик и назначить на on (release). Но хочется узнать как сделать это програмными средствами. Спасибо
Можно так:
Где мув _root.a
a.onRollOver = function() {
this.onEnterFrame = function() {
_root.Size(true, this);
};
};
a.onRollOut = function() {
this.onEnterFrame = function() {
_root.Size(false, this);
};
};
function Size(arg, patch) {
if (arg && patch._xscale>100) {
patch._xscale = 100;
delete patch.onEnterFrame;
}
if (!arg && patch._xscale<45) {
patch._xscale = 45;
delete patch.onEnterFrame;
}
arg = (arg) ? 1 : -1;
patch._xscale += arg;
patch._yscale += arg;
}
stop();
Это на вскидку... Наверное есть способ поизящнее... :)
Vensky_Hor
21.03.2006, 18:56
Мне кажется, что плавность надо делать через SetInterval и потом по достижении нужного масштаба интервал гасить
посмотри Tween.., готовым пользоватья удобнее, имхо:
on (rollOut) {
new mx.transitions.Tween(this,"_xscale",null,this._xscale,45,10);
new mx.transitions.Tween(this,"_yscale",null,this._yscale,45,10);
}
on (rollOver) {
new mx.transitions.Tween(this,"_xscale",null,this._xscale,100,10);
new mx.transitions.Tween(this,"_yscale",null,this._yscale,100,10);
}
Силин как всегда неотразимо краток :)
5 балов
Да, точно... Забыл в своем примере еще и onEnterFrame убить... :(
Всем большое спасибо. Особенно silin'у-просто супер.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.