gefällt mir der threat...
hier habe ich noch was, dass den klassennamen der klasseninstanz zur verfügung stellt und zeitgleich der klasse und der instanz, jeweils ihren namen ausgibt...
ActionScript:
/*******************************************\
function _getName (hier in _global definiert...geht aber überall...)
inkl. Function.prototype.getter
/*******************************************/
_global._getName = function (calling,tar) {
var props,temp;
tar=(tar==undefined) ? _root : tar;
this=(calling==undefined) ? this : calling;
for (props in tar) {
if (tar[props]==this ) return props;
else if (typeof tar[props]=="movieclip" ){
temp=this._getName(this,tar[props]);
if (temp!=undefined) return temp;
}
}
}
Function.prototype.addProperty("_ownName",_getName,null);
/**************************************
ende der globalen getName-fkt inkl. Function.prototype
**************************************/
/***************************************
klassenerzeugungsfunktion createClass
***************************************/
_global.createClass=function(tar,name){
var nm = name;
var tar=tar;
tar[nm]=function(){
this._className=this.constructor._ownName;
}
tar[nm].prototype.addProperty("_ownName",_getName,null);
delete nm, tar;
}
/**********************************************
ende der erzeugungsfunktion
------------------------------------------
funktion createClass nimmt 2 parameter...
1.parameter : zeitleiste
2.parameter : name der neuen funktion, als string!
**********************************************/
// erzeugen der klasse 'dideldum' auf aktueller zeitleiste
createClass(this,'dideldum');
ASSetPropFlags(dideldum,'prototype',0,1);
// erzeugen eines abkömmlings von 'dideldum' mit dem namen 'diddel'
diddel = new dideldum();
// kindsobjekt nach dem namen der klasse fragen, von dem es stammt...
// dem eigenen namen
// und mutterlement(die klasse) fragen, ob sie weiß, wie sie heißt...
trace('diddel._className = '+diddel._className);
trace('diddel._ownName = '+diddel._ownName);
trace('dideldum._ownName = '+this[diddel._className]._ownName);
output:
diddel._className = dideldum;
diddel._ownName = diddel;
dideldum._ownName = dideldum
bezüglich der argumente in _getName(calling...) hatte ich hier noch das problem dass ich 'this' von außerhalb der fkt nicht gezielt ansteuern konnte....*grübel*
deshalb hatte ich es als argument mit an die fkt übergeben...
*anyideas?*
vielleicht hilft´s ja, dem ein oder anderen...
oder passte das jetzt nicht hierher..? *gugg*
greetz
kelor