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

Molecula 23.04.2008 18:20

Пример кода, который позволяет зумировать объект колесиком мышки относительно положениея кусора. Если поможет - гуд, дальше идею сами разовьёте.
Код:

// f - навигируему объект
Mouse.addListener(this);
function onMouseWheel(d) {
        var s=f._xscale;
        var mouseX=_xmouse;
        var mouseY=_ymouse
        var dx=(mouseX-f._x)/s;
        var dy=(mouseY-f._y)/s;
        f._xscale=f._yscale+=d;
        s=f._xscale;
        f._x=mouseX-dx*s;
        f._y=mouseY-dy*s;
       
}


Wolsh 23.04.2008 18:38

Ну вот такой код пойдет?
Код:

function zoomOut () {
    steps = 20 //количество шагов зума (кадров)
    dScale = (target_mc._xscale-100)/steps
        dX = (target_mc._x-mask_mc._x)/steps
        dY = (target_mc._y-mask_mc._y)/steps
    target_mc.onEnterFrame = function(){
        if (target_mc._xscale >100){
            target_mc._x -= dX
            target_mc._y -= dY
            target_mc._yscale -= dScale;
            target_mc._xscale -= dScale;
        } else {      // доводим после дробных
            target_mc._x = mask_mc._x;
            target_mc._y = mask_mc._y;
            target_mc._yscale = target_mc._xscale = 100;
            this.onEnterFrame = null
        }
    }
}

А что касается точки привязки - то ответ простой: никак. Просто мувик помещается внутрь другого, там задаешь ему координаты так чтобы точка 0:0 внешнего мувика совпала с точкой твоего мувика, которую ты хочешь привязать, и этот внешний крутится или двигается, и внутренний мувик вместе с ним)))

http://wolsh.pisem.net/files/rotation.gif


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

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