PDA

Просмотр полной версии : Отдаление объектов (zoom)


YANSEN.RU
20.01.2008, 22:34
Уважаемые флешеры! :victory:
Как из этого скрипта приближения, сделать скрипт отдаления..что-то пробую, но не получается:

an=setInterval(anim_zoom, 10);
function anim_zoom()
{
_root._xscale+=2; // приближение
_root._yscale+=2;
_root._x=Stage.width-_root._xscale*Stage.width*0.01; // смещение... может немного не оптимальное
_root._y=Stage.height-_root._yscale*Stage.height*0.01;
_root._x-=(Stage.width-_xmouse)*(100-_root._xscale)*0.01;
_root._y-=(Stage.height-_ymouse)*(100-_root._yscale)*0.01;
if (_root._xscale>160) // остонавливаемся, если увеличение сосотвляет 2х
clearInterval(an);
}
Но, так чтобы было также "отдаление постепенное" а не сразу...
P.S. И еще как можно сделать так чтобы этот скрипт приближал в определенную точку??? Объясните прям как для "тупого" пожалуста! :umnik2:

MrPoma
20.01.2008, 22:39
_root._xscale-=2;
_root._yscale-=2;

YANSEN.RU
21.01.2008, 05:46
_root._xscale-=2;
_root._yscale-=2;
Спасибо...отдаляет - работает!
Но теперь оно уменьшается до тех размеров пока вообще не пропадет..пробовал поиграться с ограничением маштаба в конце скрипта...не получилось... может кто знает как этого достичь...
Чтобы вернуть все в состояние 100% маштаба (при увеличении было 160%)

murat
21.01.2008, 15:32
2 - меняем на переменную, при достижении порога сверху или снизу соответственно присваиваем значение -2 или 2

YANSEN.RU
21.01.2008, 21:20
Все, тема закрыта! Огромное спасибо MrPoma за содействие...просто огромное спасибо!!!! =)

вот правильный скрипт (приближение и отдаление)

an=setInterval(anim_zoom, 10, true);

function anim_zoom(zoom_in:Boolean){
if(zoom_in){
_root._xscale+=2; // приближение
_root._yscale+=2;
_root._x=Stage.width-_root._xscale*Stage.width*0.01; // смещение... может немного не оптимальное
_root._y=Stage.height-_root._yscale*Stage.height*0.01;
_root._x-=(Stage.width-_xmouse)*(100-_root._xscale)*0.01;
_root._y-=(Stage.height-_ymouse)*(100-_root._yscale)*0.01;
if (_root._xscale>160){ // остонавливаемся, если увеличение сосотвляет 2х
clearInterval(an);
}
}else{
_root._xscale-=2;
_root._yscale-=2;
_root._x=Stage.width-_root._xscale*Stage.width*0.01; // смещение... может немного не оптимальное
_root._y=Stage.height-_root._yscale*Stage.height*0.01;
_root._x-=(Stage.width-_xmouse)*(100-_root._xscale)*0.01;
_root._y-=(Stage.height-_ymouse)*(100-_root._yscale)*0.01;
if (_root._xscale<=100){
clearInterval(an);
}
}
}