[AS3] Efekt rozmycia w czasie przemieszczania obiektu

Technologia Flash, czyli animacja na potrzeby stron WWW to świat daleko odbiegły od zwykłego programowania i kodu. Zapytaj o pomoc i podziel się z nami Twoimi problemami z zakresu Flasha.
3DH
Nowy
Nowy
Posty: 34
Rejestracja: śr lip 04, 2007 1:17 pm

[AS3] Efekt rozmycia w czasie przemieszczania obiektu

Post autor: 3DH »

Będę się streszczać:

Kod: Zaznacz cały

addEventListener(Event.ENTER_FRAME, onEnterF);
stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
 
var lastX:Number;
var lastMouseX:Number;
var move:Boolean = false;
 
function MouseDown(event:MouseEvent):void {
	lastX = cube.x;
	lastMouseX = mouseX;
	move = true;
}
function MouseUp(event:MouseEvent):void {
	move = false;
}
function onEnterF(e:Event):void {
	if (move) 
	{
		celX = (0.3*(mouseX - lastMouseX) + lastX);
		XBlur = Math.abs((mouseX - lastMouseX)/20); // sila rozmycia
	}
	cube.x += (celX - cube.x)/6;
	XBlur += (0 - XBlur)/6; // rozmycie wraca do 0, ale dopiero po puszczeniu lpm
 
	var blurEffect:BlurFilter = new BlurFilter(XBlur, 0, 1);
	cube.filters = [blurEffect];
}
Teraz wygląda to tak: naciskam lpm, przesuwam cube w lewo albo prawo, cube płynnie zmienia pozycje razem z ruchem myszy, ale rozmycie zostaje dopóki nie puszcze lpm. Zależy mi na tym, żeby siła rozmycia działała proporcjonalnie do szybkości cube, niezależnie od trzymania lpm. Jak to zrobić bez użycia tweenow?
ODPOWIEDZ