PDA

Просмотр полной версии : Привязка blur к скорости


rem345690
09.01.2009, 12:51
есть вот такой вот код.... Непонимаю как можно привязать myBlur к скорости this при перемещении по х

погогите пожалуйста. ;)

//

onClipEvent (load) {

var myBlur = new flash.filters.BlurFilter(15, 0, 3);
var myTempFilters:Array = this.filters;

myTempFilters.push(myBlur);
this.filters = myTempFilters;

function fncMoveTo(y, x, speed) {
this._x += (x-this._x)*speed;
this._y += (y-this._y)*speed;
}
targetx = x;
targety = y;

}
onClipEvent (enterFrame) {
this.fncMoveTo(this._y,targetx, .15);

}

amexdesign
09.01.2009, 13:07
в смысле как привязать? чтобы myBlur по мере приближения к конечной точке уменьшался и сводился к 0?

etc
09.01.2009, 13:16
в смысле как привязать? чтобы myBlur по мере приближения к конечной точке уменьшался и сводился к 0?
По-моему, название темы говорит о скорости.

rem345690
09.01.2009, 15:06
чем быстрее перемещается this тем больше размытие. вот. сейчас влюр по горизонтали = 15 ... а нужно что сила блюра зависила от скорости перемещения

scarbo
09.01.2009, 15:41
Так,во первых отказаться от кода в мувике,написать все в кадре(правильно),в хелпе почитать про watch и BlurFilter.
Как станет понятно,что Blur надо менять первый параметр,т.е. в вашем случае должны быть не 15, а параметр,зависящий от скорости мувика,тут watch Вам в помощь.
Можно вот так(не знаю какое Вам нужно размытие,поколдуете):import flash.filters.BlurFilter;
//
mc.watch("blur",blur_speed,mc);
mc.onEnterFrame = function() {
this.blur = 0.05*this._x;//параметры блюра
this._x += (0+this._x)*0.02;
};

function blur_speed(prop:String, oldVal:Number, newVal:Number, mc:MovieClip) {
var bl:BlurFilter = new BlurFilter(oldVal, 0, 2);
mc.filters = [bl];
return newVal;
}

rem345690
09.01.2009, 16:21
попробовал.... неблюрит..... а зачем там "mc" ?

scarbo
09.01.2009, 17:16
попробовал.... неблюрит..... а зачем там "mc" ?
Не верю,во первых отказаться от кода в мувике,написать все в кадре
Это читали?Или мне за Вас исходник выложить?!
mc - это имя клипа,который на сцене находится.

rem345690
09.01.2009, 17:46
да это я сделал.... еще убрал вот это "this._x += (0+this._x)*0.02;" т.к это задоет движение а движения у меня задается функцией"fncMoveTo" .... да и блюр щас пропорционален не скорости перемещения а удалению по оси х .... ;)

scarbo
09.01.2009, 18:25
блюр меняется?Вопрос решен.
А остальное - это Ваша задача.

rem345690
09.01.2009, 18:47
;) в любом случае СПАСИБО