SonMiko
Erfahrenes Mitglied
Halihallo zusammen...
Ich bin derzeit damit beschäftigt eine Flash-Galerie zu entwickeln.
Ich habe mich dabei für einen Objektorientierten Weg entschieden -
leider stoße ich hier schon an meine Grenzen...
Die Galerie soll über eine XML Datei die nötigen Informationen erhalten,
die Struktur sieht folgendermaßen aus:
Dann habe ich zwei Klassen.
Eine für das Gallery-Script, die andere für die einzelnen Bilder.
Mein Ziel ist es für jeden Wert aus der XML Datei ein Bild Objekt zu instanziieren.
Also nicht für JEDEN Wert, sondern viel mehr für einen "Datensatz".
Die einzelnen Objekte haben dann ja Eigenschaften und so weiter... (ich vererbe hier, also bei den Bildern, die MovieClip Eigenschaften und Methoden).
Hier mal die Klasse für die Galerie:
Noch sieht man auch nicht viel von den Objekten, da ich bisweilen versuche in Arrays zu speichern... Es handelt sich um ein von mir einmal entworfenes und nun modifiziertes Script...
Eine der Hauptfragen die sich mir stellen:
Wenn ich IN meiner Klasse beim entsprechenden Funktionsaufruf eine XML Datei lade,
brauche ich ja keinen Namen vor die Methode "load" zu setzen (das klappt auch - ich habe mir im debugger die Variablen auflisten lassen und die XML Struktur ist mit drin),
aber was tue ich dann an folgender Stelle:
Das "this" habe ich einfach einmal dazugeschrieben...
dürfte ich hier auch jegliche Bezeichnung weglassen?
Und: Wichtig für mich wäre zu sehen wie man Objekte Dynamisch erstellt -
irgendwo muss ich ja fortlaufend nummerieren - in Form eines Arrays...
Glaub das ist die wichtigste Frage...
Aktuell sieht die Funktion in der Klasse nun so aus:
Würde mich über Lösungsansätze und Hilfe freuen.
Besten Dank,
liebe Grüße,
Euer,
Mike
Ich bin derzeit damit beschäftigt eine Flash-Galerie zu entwickeln.
Ich habe mich dabei für einen Objektorientierten Weg entschieden -
leider stoße ich hier schon an meine Grenzen...
Die Galerie soll über eine XML Datei die nötigen Informationen erhalten,
die Struktur sieht folgendermaßen aus:
Code:
<?xml version="1.0" encoding="utf-8"?>
<pictures>
<picture id="1" titel="erstes bild" beschreibung="Der Kunde Mercedes..." bild="1.jpg" />
<picture id="2" titel="zweites bild" beschreibung="BMW - besorg mir Wagen" bild="2.jpg" />
<picture id="3" titel="drittes bild" beschreibung="Audi? Quattro!" bild="3.jpg" />
</pictures>
</xml>
Dann habe ich zwei Klassen.
Eine für das Gallery-Script, die andere für die einzelnen Bilder.
Mein Ziel ist es für jeden Wert aus der XML Datei ein Bild Objekt zu instanziieren.
Also nicht für JEDEN Wert, sondern viel mehr für einen "Datensatz".
Die einzelnen Objekte haben dann ja Eigenschaften und so weiter... (ich vererbe hier, also bei den Bildern, die MovieClip Eigenschaften und Methoden).
Hier mal die Klasse für die Galerie:
Code:
class gallery extends XML
{
var anzBX:Number;
var anzBY:Number;
var icoxs:Number;
var icoys:Number;
function gallery()
{
}
function src(target)
{
ignoreWhite=true;
load(target);
var mike:Object = new picture();
onLoad = function(successs)
{
_root.xmlId = [];
_root.xmlTitel = [];
_root.xmlBeschreibung = [];
_root.xmlBild = [];
if (successs)
{
for (var i = 0; i<this.firstChild.childNodes.length; i++) {
_root.xmlId[i] = this.firstChild.childNodes[i].attributes.id;
_root.xmlTitel[i] = this.firstChild.childNodes[i].attributes.titel;
_root.xmlBeschreibung[i] = this.firstChild.childNodes[i].attributes.beschreibung;
_root.xmlBild[i] = this.firstChild.childNodes[i].attributes.bild;
}
}
}
}
Noch sieht man auch nicht viel von den Objekten, da ich bisweilen versuche in Arrays zu speichern... Es handelt sich um ein von mir einmal entworfenes und nun modifiziertes Script...
Eine der Hauptfragen die sich mir stellen:
Wenn ich IN meiner Klasse beim entsprechenden Funktionsaufruf eine XML Datei lade,
brauche ich ja keinen Namen vor die Methode "load" zu setzen (das klappt auch - ich habe mir im debugger die Variablen auflisten lassen und die XML Struktur ist mit drin),
aber was tue ich dann an folgender Stelle:
Code:
this.firstChild.childNodes[i].attributes.id;
dürfte ich hier auch jegliche Bezeichnung weglassen?
Und: Wichtig für mich wäre zu sehen wie man Objekte Dynamisch erstellt -
irgendwo muss ich ja fortlaufend nummerieren - in Form eines Arrays...
Glaub das ist die wichtigste Frage...
Aktuell sieht die Funktion in der Klasse nun so aus:
Code:
function src(target):XML
{
ignoreWhite=true;
load(target);
onLoad = function(successs)
{
if (successs)
{
for (var i = 0; i<gallery.firstChild.childNodes.length; i++)
{
this["bild"+i]:Object = new picture();
bild[i].id = gallery.firstChild.childNodes[i].attributes.id;
bild[i].titel = gallery.firstChild.childNodes[i].attributes.titel;
bild[i].beschreibung = gallery.firstChild.childNodes[i].attributes.beschreibung;
bild[i].bild = gallery.firstChild.childNodes[i].attributes.bild;
}
}
}
}
Würde mich über Lösungsansätze und Hilfe freuen.
Besten Dank,
liebe Grüße,
Euer,
Mike
Zuletzt bearbeitet: