Thema: traceMessages
Einzelnen Beitrag anzeigen
Alt 06-04-2003, 13:33   #15 (Permalink)
kelor
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.734
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:
  1. /*******************************************\
  2.      function _getName (hier in _global definiert...geht aber überall...)
  3.      inkl. Function.prototype.getter
  4. /*******************************************/
  5. _global._getName = function (calling,tar) {
  6.         var props,temp;
  7.         tar=(tar==undefined) ? _root : tar;
  8.         this=(calling==undefined) ? this : calling;
  9.         for (props in tar) {
  10.                 if (tar[props]==this ) return props;
  11.                 else  if (typeof tar[props]=="movieclip" ){
  12.                         temp=this._getName(this,tar[props]);
  13.                         if (temp!=undefined) return temp;
  14.                 }
  15.         }
  16. }
  17. Function.prototype.addProperty("_ownName",_getName,null);
  18. /**************************************
  19. ende der globalen getName-fkt inkl. Function.prototype
  20. **************************************/
  21.  
  22. /***************************************
  23. klassenerzeugungsfunktion createClass
  24. ***************************************/
  25.  
  26. _global.createClass=function(tar,name){
  27.             var nm = name;
  28.             var tar=tar;
  29.             tar[nm]=function(){
  30.                 this._className=this.constructor._ownName;
  31.             }
  32.             tar[nm].prototype.addProperty("_ownName",_getName,null);
  33.             delete nm, tar;
  34. }
  35. /**********************************************
  36.   ende der erzeugungsfunktion
  37. ------------------------------------------
  38. funktion createClass nimmt 2 parameter...
  39. 1.parameter : zeitleiste
  40. 2.parameter : name der neuen funktion, als string!
  41. **********************************************/
  42.  
  43.  
  44.  
  45. // erzeugen der klasse 'dideldum' auf aktueller zeitleiste
  46. createClass(this,'dideldum');
  47.  
  48. ASSetPropFlags(dideldum,'prototype',0,1);
  49. // erzeugen eines abkömmlings von 'dideldum' mit dem namen 'diddel'
  50. diddel = new dideldum();
  51.  
  52. // kindsobjekt nach dem namen der klasse fragen, von dem es stammt...
  53. // dem eigenen namen
  54. // und mutterlement(die klasse) fragen, ob sie weiß, wie sie heißt...
  55. trace('diddel._className = '+diddel._className);
  56. trace('diddel._ownName = '+diddel._ownName);
  57. 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
kelor ist offline   Mit Zitat antworten