mc.filter tweenen

dreamer2007

Mitglied
Hallo,

gibt es in Flash die Möglichkeit einen Filter der auf eine MC angewendet werden soll zu tweenen?
Ich möchte gerne, dass sich ein MC beim Aufruf einer Funktion z.B. unscharf stellt. Das ganze soll aber kontinuierlich passieren und nicht abrupt.

Vielleicht kann mir ja jemand weiterhelfen...

Grüße

Dreamer
 
Hi,

folgenden Prototype verwende ich, um ein Objekt über seine _alpha-Eigenschaft ein- und auszublenden, und gleichzeitig weichzuzeichnen:
Code:
import flash.filters.BlurFilter;

MovieClip.prototype.blurFade = function(d, spd, max, idx, h, v, _cb) {
	this["MC_blurFade_slider"].removeMovieClip();
	var slider = this.createEmptyMovieClip("MC_blurFade_slider", this.getNextHighestDepth());
	var ca = this._alpha;
	var w = (100 - ca) * max / 100;
	slider.oa = this._alpha;
	slider.f = new BlurFilter(w * h, w * v, 1);
	this.filters[idx] = slider.f;
	slider.onEnterFrame = function() {
		this._parent._alpha += (d - this._parent._alpha) / spd;
		if (this._parent._alpha == this.oa) {
			this._parent._alpha = d;
		}
		this.oa = this._parent._alpha;
		var w = (100 - this._parent._alpha) * max / 100;
		delete this.f;
		var arr = new Array();
		for (var i=0; i<idx; i++) {
			arr[i] = this._parent.filters[i];
		}
		if (w != 0) {
			this.f = new BlurFilter(w * h, w * v, 1);
			arr[idx] = this.f;
		}
		this._parent.filters = arr;
		if (this._parent._alpha == d) {
			delete this.onEnterFrame;
			_cb();
			this.removeMovieClip();
		}
	}
}
Die Parameter sind:
  • d - Ziel-Alphawert (0-100);
  • spd - Annährungsverzögerung
  • max - maximale Weichzeichnung (tritt bei einem Alphawert von 0 auf; bei Alpha = 100 ist die Weichzeichnung 0)
  • idx - Indexposition des Filters im filters-Array des MovieClips (falls der MC schon über Filter verfügt)
  • h - horizontaler Multiplikator der Weichzeichnung (0 - 1)
  • v - vertikaler Multiplikator der Weichzeichnung (0 - 1)
  • _cb - optionale Callbackfunktion, die nach Ende des Tweens ausgeführt wird

Gruß
.
 
Zurück