Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-04-2003, 14:03   #1 (permalink)
Coalado
 
Registriert seit: Jun 2001
Ort: Lagcity.de
Beiträge: 683
Variablen auflisten [STRG+ALT+V]

Zum tracen von ganzen ObjectStrukturen.. gabs wohl schon öffter mal:


ActionScript:
  1. String.prototype.fillLines = function(arg) {
  2.     var txt = this.split("\r");
  3.     var mx = txt.length;
  4.     for (var i = 0; i<mx; i++) {
  5.         txt[i] = arg+txt[i];
  6.     }
  7.     return txt.join("\r");
  8. };
  9. Object.prototype.getContentString = function(seperator, refs, refn) {
  10.     var str = typeof this+" : ";
  11.     seperatorNew = seperator+1;
  12.     if (refs == null) {
  13.         var refs = [];
  14.         refs.push(this);
  15.         var refn = [];
  16.         refn.push("this");
  17.     }
  18.     var Sep = new Array(seperatorNew);
  19.     sep = sep.join(" |");
  20.     for (var i in this) {
  21.         if (typeof this[i] != "object") {
  22.             str += "\r";
  23.             str += (sep+i+" = "+this[i]+"  ("+typeof this[i]+")");
  24.         } else {
  25.             var check = false;
  26.             for (var j in refs) {
  27.                 if (refs[j] == this[i]) {
  28.                     check = refn[j];
  29.                     break;
  30.                 }
  31.             }
  32.             if (check == false) {
  33.                 refs.push(this[i]);
  34.                 refn.push(i);
  35.                 str += "\r";
  36.                 str += sep+i+"  ("+typeof this[i]+")"+" : ";
  37.                 str += this[i].getContentString(seperatorNew, refs, refn);
  38.             } else {
  39.                 str += "\r";
  40.                 str += sep+i+"  (reference to '"+check+"')"+" : ";
  41.             }
  42.         }
  43.     }
  44.     seperatorNew--;
  45.     if (seperatorNew == 0) {
  46.         str = str.fillLines("|");
  47.     }
  48.     return str;
  49. };
  50.  
  51.  
  52. //Anwendung:
  53.  
  54.  
  55. t = {};
  56. t.eins = 1;
  57. t.arr = [];
  58. t.arr[1] = "affe";
  59. t.arr[0] = "banane";
  60. t.obj = {};
  61. t.obj.prop = "select";
  62. t.obj.arrr = [];
  63. t.obj.arrr.push(true);
  64. t.obj.arrr.push("unkn");
  65. t.obj.arrr.push("wert");
  66. t.value = "ggggggg";
  67. t.obj.ref = t;
  68. t.obj.ref.obj.rrr = t.arr;
  69. out = t.getContentString();
  70. trace(out);
  71.  
  72.  
  73.  
  74. /*
  75. |object :
  76. |getContentString = [type Function]  (function)
  77. |value = ggggggg  (string)
  78. |obj  (object) : object :
  79. | |getContentString = [type Function]  (function)
  80. | |rrr  (object) : object :
  81. | | |getContentString = [type Function]  (function)
  82. | | |0 = banane  (string)
  83. | | |1 = affe  (string)
  84. | |ref  (reference to 'this') :
  85. | |arrr  (object) : object :
  86. | | |getContentString = [type Function]  (function)
  87. | | |2 = wert  (string)
  88. | | |1 = unkn  (string)
  89. | | |0 = true  (boolean)
  90. | |prop = select  (string)
  91. |arr  (reference to 'rrr') :
  92. |eins = 1  (number)
  93. */



Die Feine art ist es warscheinlich nicht Verknüpfungen zu Übergeordneten Objekten anzulegen, aber manchmal ( finde ich) trotzdem ganz praktisch und sinnvoll.

Deshalb ist diese Möglichkeit mit drin

MFG tumetom

Geändert von tumetom (19-04-2003 um 17:22 Uhr)
tumetom ist offline   Mit Zitat antworten
Alt 19-04-2003, 14:56   #2 (permalink)
◘ ◘
 
Benutzerbild von beachmeat
 
Registriert seit: Dec 2001
Ort: Amsterdam
Beiträge: 6.126
Thumbs up

Sehr fein!

Wird wohl mein bisheriges Tool in der Art ablösen - klasse wäre noch die Möglichkeit wirklich rekursiv z.B. von _root aus ALLES ausgeben zu lassen
__________________
jeden Tag frisch

Geändert von beachmeat (19-04-2003 um 15:00 Uhr)
beachmeat ist offline   Mit Zitat antworten
Alt 19-04-2003, 17:20   #3 (permalink)
Coalado
 
Registriert seit: Jun 2001
Ort: Lagcity.de
Beiträge: 683
:-)
Hab noch etwas rumgebastelt:



anguggn


einsacken



Vieleicht kommt das ganze jetzt dem ein oder anderen bekannt vor....

Es funktioniert NUr leider nicht über mehrere levels :-(


MFG tumetom
tumetom ist offline   Mit Zitat antworten
Alt 20-04-2003, 02:19   #4 (permalink)
nky
Bontempi Punk
 
Benutzerbild von nky
 
Registriert seit: Dec 2001
Ort: Dtld/Pfalz
Beiträge: 4.185
das ist mächtig ! Nice Work

Gruss nky
nky ist offline   Mit Zitat antworten
Alt 20-04-2003, 10:37   #5 (permalink)
Friend of Ed
 
Registriert seit: Dec 2001
Ort: Chiemsee
Beiträge: 669
Jaja, der Frühling.

Klasse!

Viele Grüße
Dominic
Dominic H. ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele