Hallo ich hatte im heutigen tag das setInterval als Tages thema und habe eine kleine listener funktionalität entwickelt na entwickelt ist übertrieben ist ja ansich ein bekannter hut aber vielleicht braucht es wer
es gibt eine Flash 6 Version und eine AS2 klasse im AS2 bereich
hier
Flash 6 AS 1.0
ActionScript:
_global.addIntervalListener = function(pIntVar, pIntervalPath) {
//
if (_global.__intvalArray == undefined) _global.__intvalArray = new Array();
for (var i = 0; i<_global.__intvalArray.length; i++) {
if (_global.__intvalArray[i].intVarName == pIntVar && _global.__intvalArray[i].intPath == pIntervalPath) {
trace("____# Fehler! Interval ist schon registriert ...");
return false;
}
}
trace("____# neues Interval registriet!");
_global.__intvalArray.push({intVarName: pIntVar, intPath: pIntervalPath});
};
//
_global.removeIntervalListener = function(pIntVar, pIntervalPath) {
var l=_global.__intvalArray.length;
for (var i = 0; i<l; i++) {
if (_global.__intvalArray[i].intVarName == pIntVar && _global.__intvalArray[i].intPath == pIntervalPath) {
clearInterval(_global.__intvalArray[i].intPath[_global.__intvalArray[i].intVarName]);
delete _global.__intvalArray[i].intPath[_global.__intvalArray[i].intVarName];
_global.__intvalArray.splice(i, 1);
}
}
trace("____# registriertes Interval wurde gecleart");
};
_global.clearAllRegisterdIntervals = function() {
//
for (var i in _global.__intvalArray) {
_global.removeIntervalListener(_global.__intvalArray[Number(i)].intVarName,_global.__intvalArray[Number(i)].intPath);
}
trace("____# alle registrierten Intervalle würden gecleart");
};
die anwendung ist denkbar einfach
ActionScript:
meinInterval=setInterval(this, "meineFkt", 500);
_global.addIntervalListener("meinInterval", this);
// zum entfernen
_global.removeInterval("meinInterval", this);