Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-10-2003, 16:26   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: Bochum
Beiträge: 8
Problem: Objektbezeichnung über Variable dynamisch vergeben !

Hallo Flash-Forum,

stehe vor einem großen Problem, was sich aber vielleicht schnell lösen läßt, denn der Kanckpunkt der ganzen Sache ist das dynamische Auslesen von Namen für dynamisch generierte Einzelobjekte, die alle einer Klasse angehören. Prinzipiell klappt soweit alles, bis auf die Tatsache, dass die in einer for-Schleife aus einem XML-Dokument ausgelesenen Namen nachfolgend auch gleichzeitig über eine Variable dynamisch als Objektbezeichner übergeben werden können.
Ich kopier hier mal den relevanten Skriptausschnitt rein, die XML-Funktionalitäten sind hier unwichtig, sie funktionieren. Den kritischen Punkt der Übergabe des Objektbezeichners habe ich mit den entsprechenden Kommentaren versehen.

Wäre toll wenn Ihr noch eine Idee habt.

//---------Definition der allgemeinen Klasse EuLaender-------------
eulaender = function (name, bev, flaeche) {
this.name = name;
this.bev = bev;
this.flaeche = flaeche;
}


//-----------XML-Import !!! -------------------//
eudaten = new XML();
eudaten.ignoreWhite = true;
eudaten.onLoad = geladen;
eudaten.load("eudaten.xml");

function geladen() {

var ZAHL_STAATEN = 15 //globale Variable der Länder auch = Anzahl Knoten unter Wurzelknoten

var EuStaaten = new Array(ZAHL_STAATEN);
var i;
var StaatKnoten;

for (i = 0; i < ZAHL_STAATEN; ++i) {

//---zukünftigen Namen für Objekt auslesen aus XML-Dokument soweit kein Problem---

aktuellesLand = this.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue;

//---mit Hilfe der Variablen "aktuellesLand" jeweiligen Namen als Objektnamen der Klasse EULaender zuweisen---
//---hier ist der Knackpunkt, funktioniert so nicht, gibt es überhaupt einen Weg ????---

aktuellesLand = new eulaender(this.firstChild.childNodes[i].childNodes..bla,bla,bla...........);

//---die XML-Abfrage ist hier nicht wichtig, sie funktioniert kann natürlich noch vereinfacht werden---
}
}



Bin gespannt auf Eure Posts

Ciao

Orry
Orry ist offline   Mit Zitat antworten
Alt 08-10-2003, 16:02   #2 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
zunächst mal würde ich den Konstruktor anders deklarieren:
z.B.:
ActionScript:
  1. function eulaender( name){
  2.     this._name = name;
  3. }
  4.  
  5. land = new eulaender('BRD');
  6.  
  7. trace(bla._name)

und dann musst du ihn eben mit den entsprechenden Werten aufrufen ....


du meinst aber wahrscheinlich nicht die Eigenschaft '_name' des neuen Object, sondern den Bezeichner des Objects selbst ...

... das legst du ja hier fest:

ActionScript:
  1. land = new eulaender('BRD');

der Bezeichner ist 'land' ...

soll der dynamisch festgelegt werden, kannst du's so machen:

ActionScript:
  1. //liste mit bezeichnern
  2. bezList = ['BRD', 'ITA', 'USA'];
  3. bev = [80, 70, 260];
  4. flaeche = [20000, 15000, 50000];
  5.  
  6.  
  7. function eulaender( name, bev, flaeche){
  8.     this._name = name;
  9.     this.bev = bev;
  10.     this.flaeche = flaeche;
  11. }
  12.  
  13. for(i=0;i<bezList.length;i++){
  14.     this[bezList[i]] = new eulaender(bezList[i], bev[i], flaeche[i]);
  15. }

die erzeugten Objecte sind keine mc's !





[/AS]
__________________
one out of many
pius 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 02:33 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele