setInterval im Prototype clearen

Denniz

Erfahrenes Mitglied
Hi Leute,

ich habe ein Prototype mit dem ich meine instanzierten MC's einblenden lasse.
Die Einblendfunktion wird über setInterval gesteuert.

Wie schaffe ich es die Interval ID's in den MovieClips manuell über den button zu löschen solange alpha<100 ist?

Code:
var T_ROOT:MovieClip = this;
MovieClip.prototype.goFadeIn = function(pA:Number) {
	this._alpha = 0;
	var T_CLIP = this;
	var iv:Number = setInterval(go, 15);
	function go() {
		if (T_CLIP._alpha<=pA) {
			T_CLIP._alpha += 1;
		}
		else {
			T_CLIP._alpha = pA;
			trace("ALPHASTOP");
			clearInterval(iv);
		}
	}
};
function init() {
	for (i=0; i<4; i++) {
		var mc:MovieClip = T_ROOT.attachMovie("mc", "mc"+i, T_ROOT.getNextHighestDepth());
		mc._x = i*100;
		mc._y = 100;
		mc.goFadeIn(100);
	}
}
init();
btn.onPress = function() {
	for (i=0; i<=4; i++) {
		clearInterval(T_ROOT["mc"+i].iv);// geht nicht
	}
};


Gruß

EDIT:
Hab's herausgefunden.
Die Interval Id's müssen global angelegt werden um diese beim drücken des buttons wieder loszuwerden:

_global["iv"+i] = setInterval(go, 15);
...

btn.onPress = function() {
for (i=0; i<4; i++) {
clearInterval(_global["iv"+i])
}
};
 
Zuletzt bearbeitet:
Hi,

lege die Intervall-ID als Member des Ziel-MC fest:
Code:
var T_ROOT:MovieClip = this;
MovieClip.prototype.goFadeIn = function(pA:Number) {
	this._alpha = 0;
	var T_CLIP = this;
	this.iv = setInterval(go, 15);
	function go() {
		if (T_CLIP._alpha<=pA) {
			T_CLIP._alpha += 1;
		}
		else {
			T_CLIP._alpha = pA;
			trace("ALPHASTOP");
			clearInterval(T_CLIP.iv);
		}
	}
};

Gruß
.
 
Upps, hab grad erst gesehen das du gepostet hast.

-Ja, deine Möglichkeit geht auch, ist auch die bessere als mit _global rumzuwerkeln.
 

Neue Beiträge

Zurück