Форум 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)
-   -   Реализация Масштабирования во время Drug ('n'Drop) (http://www.flasher.ru/forum/showthread.php?t=77062)

E_M_Master 17.03.2006 16:19

Реализация Масштабирования во время Drug ('n'Drop)
 
Подскажите, как реализовать масштабирование во время "перетаскивания" пользователем объекта видеоклипа?

Пробовал вставить в обработчик события на нажатие кнопки мыши на клипе временной интервал с функцией, меняющей масштаб но не работало... см последние 2 строчки кода...
ТО что делал:
on (press)
{
function movescale (obj)
{
this.camerax=-50;
this.cameray=0;
this.cameraz=424;
dscreenc(this,_root._xmouse,_root._ymouse);
fullxyzevaluate(this);
min=Math.sqrt(this.camerax*this.camerax+(this.cameraz-177)*(this.cameraz-177));
this._xscale=(this.distance/min)*100+25;
this._yscale=(this.distance/min)*100+25;
}

this.startDrag(true,0,210,656,456);
ctID1 = setInterval(movescale(this),50);
}

silin 17.03.2006 16:50

для начала
посмотри как передаются параметры в сетинтервальную функцию..
посмотри что ты передаешь (на что указывает this)
подумай зачем ты передаешь obj, если его не используешь

E_M_Master 17.03.2006 19:59

Спасибо, обязательно гляну, но пока чтонет времени.
Скажи плжалуйста, поставленную проблему нужно реализовывать именно в такой концепции ???

E_M_Master 17.03.2006 20:00

1
 
Спасибо, обязательно гляну, но пока чтонет времени.
Скажи плжалуйста, поставленную проблему нужно реализовывать именно в такой концепции ???

Double 17.03.2006 20:14

блин, ну тебе указали на ошибки, а ты говоришь, что потом посмотришь. ну когда посмотришь, тогда и приходи с новыми вопросами.

silin 17.03.2006 20:15

да вовсе нет, вариантов много..
если масштабирование зависит от времени, то конечно setInteval( или onEnterFrame),
а если от позиции курсора, то лучше на onMouseMove это повесить, например по onPress определяем onMouseMove , по onRelease удаляем:
Код:

mc.onPress=function(){
        var x=_xmouse;
        this.onMouseMove=function(){
                this._x+=_xmouse-x;//перетаскивание
                x=_xmouse;
                this._xscale=_xmouse/4;//масштабирование
        }
}
mc.onRelease=function(){
        delete this.onMouseMove;
}


Double 17.03.2006 20:21

silin, почему не присваивать this._x значение _xmouse+const? к чему хранить предыдущую позицию мыши?

silin 17.03.2006 20:29

да не принципиально, имхо..
мне так удобнее: не надо думать чей _xmouse берем (смотрим тока изменение)

Double 17.03.2006 20:43

понял. я _root частенько использую (_root._xmouse). понимаю, что всякие импорты подразумевают lockroot, но дельту почему-то не использовал никогда.


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

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