Thema: traceMessages
Einzelnen Beitrag anzeigen
Alt 02-04-2003, 19:26   #4 (Permalink)
hOk
Neuer User
 
Benutzerbild von hOk
 
Registriert seit: Jun 2001
Ort: berlin
Beiträge: 829
Hehe, die __resolve würde ich aber dafür nicht
verschwenden, aber genial ist es auf alle Fälle...;-)
Hier nochmal mit Arguments und OnlyLastMethod-
Flag.
Kann man es nicht mit irgendeinem ASNative schaffen
an den Text der Funktion ranzukommen?
In Javascript ist das ja das normale toString-Verhalten
einer Funktion.
Wäre halt Klasse wenn man die erwarteten Argumente-
Bezeichner mit ausgeben könnte.
*grübel*
ActionScript:
  1. trace(String(traceMessages = function (pObj, pBlnLastMethodOnly) {
  2.     for (var p in pObj) {
  3.         if (typeof pObj[p] != 'function') continue;
  4.         var tmp = pObj[p];
  5.         pObj[p] = function() {
  6.             trace('call-of> ' + arguments.callee.__methodName + '(' + arguments.join(', ') + ')');
  7.             arguments.callee.__originalMethod.apply(this, arguments);
  8.         }
  9.         pObj[p].__methodName = p;
  10.         pObj[p].__originalMethod = tmp;
  11.         if (pBlnLastMethodOnly) return '';
  12.     }
  13.     return '';
  14. }).substr(0,0));
  15.  
  16. // Test
  17. Kaefer = function () {}
  18. Kaefer.prototype.init = function (pStrName, pIntAge) {
  19.     this.strName = pStrName;
  20.     this.intAge = pIntAge;
  21. }
  22. Kaefer.prototype.traceProperties = function () {
  23.     trace(this.strName + '(' + this.intAge + ')');
  24. }
  25.  
  26. objPaule = new Kaefer();
  27.  
  28. trace(traceMessages(objPaule)); // <--
  29.  
  30. objPaule.init('Paule', '23');
  31. objPaule.traceProperties();
  32.  
  33. // Output:
  34. //
  35. // call-of> init(Paule, 23)
  36. // call-of> traceProperties()
  37. // Paule(23)
  38.  
__________________
gobogo
hOk ist offline   Mit Zitat antworten