PDA

Просмотр полной версии : как сделать замедление scale'а


art85
21.03.2006, 16:52
есть код:
on (rollOut) {
setProperty(this, _yscale, 45);
setProperty(this, _xscale, 45);
}
on (rollOver) {
setProperty(this, _yscale, 100);
setProperty(this, _xscale, 100);
}

который увеличивает при наведении объект. Но это происходит резко (сразу крупно или мелко). как сделать замедление scale'а. можно конечно создать мувик и назначить на on (release). Но хочется узнать как сделать это програмными средствами. Спасибо

ReN
21.03.2006, 17:52
Можно так:
Где мув _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 и потом по достижении нужного масштаба интервал гасить

silin
21.03.2006, 19:53
посмотри 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);
}

nouba
21.03.2006, 22:30
Силин как всегда неотразимо краток :)
5 балов

ReN
22.03.2006, 00:16
Да, точно... Забыл в своем примере еще и onEnterFrame убить... :(

art85
22.03.2006, 13:03
Всем большое спасибо. Особенно silin'у-просто супер.