Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-02-2004, 16:16   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Ort: Graz
Beiträge: 36
komplette dyn. Arraynamen + Methoden Generierung

Hallo Kollegen!

Ich sitze gerade an einer generischen Funktion, in der Werte aus einem mehrdimensionalen Array abgerufen werden sollen, wobei Arrayname, Index und Methodenname als Parameter an die Funktion übergeben werden sollen.

Leider habe ich in der Namensgenerierung einen Fehler bzw. weiß ich nicht, ob das mit dem Methodennamen überhaupt so klappen kann.

ActionScript:
  1. //  Die protokoll Klasse
  2. function protokoll(art, wert, zeit, zeitdiff) {
  3.     this._art     = undefined;
  4.     this._wert   = 0;
  5.     this._zeit   = 0;
  6.     this._zeitdiff  = 0;
  7.    
  8.     this.setArt(art);
  9.     this.setWert(wert);
  10.     this.setZeit(zeit);
  11.     this.setZeitdiff(zeitdiff);
  12. }
  13.  
  14.  
  15.  
  16. //  METHODEN der protokoll Klasse
  17. protokoll.prototype.setArt   = function(newArt) { this._art = newArt; };
  18. protokoll.prototype.getArt   = function() { return this._art; };
  19. protokoll.prototype.addProperty("art", protokoll.prototype.getArt, protokoll.prototype.setArt);
  20.  
  21. protokoll.prototype.setWert     = function(newWert) { this._wert = newWert; };
  22. protokoll.prototype.getWert  = function() { return this._wert; };
  23. protokoll.prototype.addProperty("wert", protokoll.prototype.getWert, protokoll.prototype.setWert);
  24.  
  25. protokoll.prototype.setZeit     = function(newZeit) { this._zeit = newZeit; };
  26. protokoll.prototype.getZeit     = function() { return this._zeit; };
  27. protokoll.prototype.addProperty("zeit", protokoll.prototype.getZeit, protokoll.prototype.setZeit);
  28.  
  29. protokoll.prototype.setZeitdiff = function(newZeitdiff) { this._zeitdiff = newZeitdiff; };
  30. protokoll.prototype.getZeitdiff = function() { return this._zeitdiff; };
  31. protokoll.prototype.addProperty("zeitdiff", protokoll.prototype.getZeitdiff, protokoll.prototype.setZeitdiff);
  32.  
  33. _global.sitzungsprotokollArray  = new Array();
  34. _global.sitzungsprotokollID  = 0;
  35.  
  36.  
  37. // hier wird das multidimensionale Array erzeugt
  38. function schreibeSitzungsprotokoll(art, wert, zeit, zeitdiff) {
  39.     _global[protokoll + _global.sitzungsprotokollID] = new protokoll(art, wert, zeit, zeitdiff);
  40.     _global.sitzungsprotokollArray.push(_global[protokoll + _global.sitzungsprotokollID]);
  41.     _global.sitzungsprotokollID++;
  42.    
  43. }
  44.  
  45.  
  46. // die oben angesprochene Suchfunktion
  47. function sucheInArray(arrayName, arrayMethode, kriterium) {
  48.     for (var i = 0; i < _global[arrayName].length; i++) {
  49. // die kritische Zeile, warum klappt das nicht?
  50.         if (_global[arrayName][i][arrayMethode] == kriterium) {
  51.             return i;
  52.         }
  53.     }
  54. }
  55.  
  56. schreibeSitzungsprotokoll("idea", 2, 100, 0);
  57. schreibeSitzungsprotokoll("idea", 4, 200, 0);
  58. schreibeSitzungsprotokoll("idea", 1, 300, 0);
  59.  
  60. // liefert nur ein "undefined", wahrsch. weil die dyn. Namensgernerierung gar nie geklappt hat
  61. trace(sucheInArray("sitzungsprotokollArray", "getArt()", "idea"));

Ist es nicht möglich einen Methodenaufruf dynamisch zu generieren?
Warum klappt das
ActionScript:
  1. _global[arrayName][i][arrayMethode]
nicht?
Ich wollte eigentlich zB das erzeugen:
ActionScript:
  1. _global.sitzungsprotokollArray[i].getArt()

Falls jemand einen Tip hat, ich wäre sehr dankbar!
__________________
Robert Niessner
LAUFBILDkommission

Geändert von rniessner (23-02-2004 um 16:26 Uhr)
rniessner ist offline   Mit Zitat antworten
Alt 23-02-2004, 16:39   #2 (permalink)
jan
Neuer User
 
Registriert seit: Jun 2001
Beiträge: 6
was auf jeden fall noch fehlt, sind die klammern am ende:

ActionScript:
  1. _global[arrayName][i][arrayMethode]();


gruss
jan
jan ist offline   Mit Zitat antworten
Alt 23-02-2004, 16:44   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Ort: Graz
Beiträge: 36
Das wars auch schon - herzlichen Dank Jan! :-)
Manchmal liegt die Lösung so nah und doch so fern...
__________________
Robert Niessner
LAUFBILDkommission
rniessner 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 20:33 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele