Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
l'Audiophile
Threadersteller
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst Fr 29.07.2005 22:50
Titel [Tutorial] Erstellen und auslesen von XML-Dateien mit Flash |
|
|
Und wieder mal ein Tutorial.
Schreibe gerade an einem kleinen Flash-CMS und habe mir gedacht, wie es wohl wäre, komplett auf mySQL- oder SQL-Datenbanken zu verzichten. Daraufhin habe ich mich entschieden als Datenbanken XML-Dateien zu erstellen. Was jetzt effektiver wäre sei jetzt mal dahin gestellt. Fakt ist; ich kann mySQL (noch) nicht so gut, deshalb hab ich drauf verzichtet. Besonders effektiv ist es daher vor allem für Leute, deren Webspace keine Datenbanken unterstützen.
Das Prinzip ist folgendes.
Ich habe im Backend ein paar Textfelder, welche ich mit Inhalten bestücken kann. Diese Inhalte können natürlich auch HTML-formatiert werden. Beim Absenden dieser Inhalte, formatiert Flash nach Belieben die XML-Datei und sendet die Daten an ein kleines PHP-Script, welches dynamisch in einem gewünschten Ordner auf dem Server eine XML-Datei mit dem gewünschten Inhalten erstellt.
Der Inhalt dieser Datei kann dann per Flash wieder angezeigt werden.
anschauen und testen
Und so gehts:
1. Ihr erstellt drei Eingabefelder in Flash und benennt sie mit den Variablen „vorname“,„ nachname“ und „sonstiges“
2. Ihr erstellt einen Button mit dem Instanznamen „btn_schreiben“
3. Ihr erstellt vier dynamische Textfelder mit den Instanznamen „ausgabe_vorname“, „ausgabe_nachname“, „ausgabe_sonstiges“ und „ausgabe_xml“
4. Ihr erstellt einen Button mit dem Instanznamen „btn_lesen“
5. Jetzt kommt der Actionscript-Teil (AS in das erste Frame der Hauptzeitleiste)
Naürlich wieder schön kommentiert, wie immer.
Code: |
// Der Button zum Übermitteln der Daten an PHP und Schreiben der XML
this.btn_schreiben.onPress = function() {
//Formatierung der XML-Datei
xml_formatierung = "<?xml version=1.0 encoding=utf-8 ?>";
xml_formatierung += "\n";
xml_formatierung += "<personendaten>";
xml_formatierung += "\n";
xml_formatierung += " <vorname inhalt='"+vorname+"'>";
xml_formatierung += "\n";
xml_formatierung += " </vorname>";
xml_formatierung += "\n";
xml_formatierung += " <nachname inhalt='"+nachname+"'>";
xml_formatierung += "\n";
xml_formatierung += " </nachname>";
xml_formatierung += "\n";
xml_formatierung += " <![CDATA["+sonstiges;
xml_formatierung += "\n";
xml_formatierung += " ]]>";
xml_formatierung += "\n";
xml_formatierung += "</personendaten>";
// Ende der XML-Formatierung
// neues LoadVars-Objekt zum Übertragen der Daten an die PHP-Datei "parse.php"
php_parse = new LoadVars();
// der Name der XML-Datei
var dateiname = "personendaten";
// Die Formatierungsvariable wird dem LoadVars-Objekt übertragen
php_parse.uebergabe = xml_formatierung;
// diese Variable bezeichnet den relativen Pfad zum Ordner, in dem die XML geladen wird. Wird sie wie jetzt leer gelassen, wird die XML im selben Verzeichnis wie die PHP-Datei erzeugt.
php_parse.pfadname = "";
// Hier wird nur der Name der zu generierenden XML-Datei übermittelt.
php_parse.seitenname = dateiname+".xml";
// zu guter Letzt werden die Daten an die PHP_Datei gesendet
php_parse.onLoad = geladen;
php_parse.sendAndLoad("parse.php", php_parse, "POST");
};
// Button zum Auslesen der XML-Datei
this.btn_lesen.onPress = function() {
// neues XML-Objekt erzeugen
texte_xml = new XML();
// evtl. Leerzeichen ingnorieren
texte_xml.ignoreWhite = true;
// Laden der XML_Datei
texte_xml.load("personendaten.xml");
texte_xml.onLoad = function(ok) {
// wenn Datei erfolgreich geladen wurde …
if (ok) {
// …wird im Textfeld "ausgabe_xml" die gesamte XML-Datei ausgegeben
_root.ausgabe_xml.text = this;
// …wird im Textfeld "ausgabe_vorname" der Inhalt des Attributes "inhalt" im Knoten "vorname" ausgegeben
_root.ausgabe_vorname.text = texte_xml.firstChild.firstChild.attributes.inhalt;
// …wird im Textfeld "ausgabe_nachname" der Inhalt des Attributes "inhalt" im Knoten "nachname" ausgegeben
_root.ausgabe_nachname.text = texte_xml.firstChild.childNodes[1].attributes.inhalt;
// …wird im Textfeld "ausgabe_sonstiges" der Inhalt des CDATA-Objektes augelesen. Dieser Inhalt kann HTML-Formatiert werden
_root.ausgabe_sonstiges.text = texte_xml.firstChild.childNodes[2];
delete texte_xml;
}
};
};
|
6. Der Inhalt der PHP-Datei, die unter „parse.php“ abgespeichert wird
Code: |
<?php
if ($uebergabe){
$uebergabe=stripslashes($uebergabe);
// die XML-Datei wird geöffnet/bzw. erstellt…
$fp = fopen($pfadname . $seitenname,"w");
// mit Inhalten gefüllt …
fputs ($fp, $uebergabe);
// und zu guter Letzt wieder geschlossen
fclose($fp);
}
echo "das wars auch schon";
?>
|
Nun ab mit den Sachen auf den Server und Spaß haben.
und nochmal zum Saugen
Klar, ich freu mich immer über Feedbacks und interessiere mich für eure Fragen. Aber bitte hier im Thread, damit andere was davon haben und nicht per PN.
Danke
liebe Grüße
PeJot
Zuletzt bearbeitet von l'Audiophile am Do 29.06.2006 16:24, insgesamt 2-mal bearbeitet
|
|
|
|
|
l'Audiophile
Threadersteller
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst Sa 30.07.2005 20:15
Titel Bugfix |
|
|
Kleinen Bug entdeckt:
Die XML hängt manchmal im Browsercache fest. Das Problem wird wie folgt gelöst:
folgende Zeile:
Code: |
// Laden der XML_Datei
texte_xml.load("personendaten.xml");
|
ersetzen durch:
Code: |
// Laden der XML_Datei
texte_xml.load("personendaten.xml?nocache=" + new Date().getTime());
|
Habs am Online-Beispiel schon behoben.
Viel Spass damit.
Gruß PeJot
|
|
|
|
|
Anzeige
|
|
|
Nimroy
Community Manager
Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 46
Geschlecht:
|
Verfasst Sa 30.07.2005 23:34
Titel
|
|
|
Du bist mein Held!
|
|
|
|
|
zwetschgo
R.I.P.
Dabei seit: 21.02.2002
Ort: Porada Ninfu, Lampukistan
Alter: 49
Geschlecht:
|
Verfasst So 31.07.2005 08:17
Titel
|
|
|
Auch wenn ich mich damit abgegeben hab nie Flash oder sonstiges Designzeugs zu beherrschen.Das verdient gehörigen Respekt.
|
|
|
|
|
roblade
Dabei seit: 27.06.2002
Ort: Düsseldorf/Berlin
Alter: -
Geschlecht:
|
Verfasst So 31.07.2005 11:12
Titel
|
|
|
super sache - merci!!!
|
|
|
|
|
l'Audiophile
Threadersteller
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst So 31.07.2005 14:02
Titel
|
|
|
Hehe, danke
|
|
|
|
|
eikman
Dabei seit: 27.02.2004
Ort: Essen
Alter: 43
Geschlecht:
|
Verfasst So 31.07.2005 14:27
Titel
|
|
|
coole sache,
muss mich mal mehr damit beschäftigen (XML)
|
|
|
|
|
Gargoyle
Dabei seit: 19.05.2005
Ort: -
Alter: 39
Geschlecht:
|
Verfasst Do 25.08.2005 23:35
Titel
|
|
|
...hehe... was denkt ihr wäre das geeignet um ein Gästebuch zu erstellen? Schreiben in Xml und wieder auslesen...???
|
|
|
|
|
|
|
|
Ähnliche Themen |
[Tutorial] dyn. Flash-Preloader zum Laden externer Dateien
[Statistik] Auslesen von *.udb-Dateien
auslesen von dateien und schreiben in neue |solved|
eMail-Adressen aus ACCESS-Dateien (.mdb) auslesen
URL aus Flash auslesen
..bilder auslesen..flash..
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|