Форум 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)
-   -   Привязка blur к скорости (http://www.flasher.ru/forum/showthread.php?t=120006)

rem345690 09.01.2009 12:51

Привязка blur к скорости
 
есть вот такой вот код.... Непонимаю как можно привязать 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

Цитата:

Сообщение от amexdesign (Сообщение 789190)
в смысле как привязать? чтобы myBlur по мере приближения к конечной точке уменьшался и сводился к 0?

По-моему, название темы говорит о скорости.

rem345690 09.01.2009 15:06

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

scarbo 09.01.2009 15:41

Так,во первых отказаться от кода в мувике,написать все в кадре(правильно),в хелпе почитать про watch и BlurFilter.
Как станет понятно,что Blur надо менять первый параметр,т.е. в вашем случае должны быть не 15, а параметр,зависящий от скорости мувика,тут watch Вам в помощь.
Можно вот так(не знаю какое Вам нужно размытие,поколдуете):
Код AS1/AS2:

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

;) в любом случае
Код AS3:

СПАСИБО



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

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