Von: Ralf Siegel Datum: 6. November 2002 11:59:38 MEZ An: newsletter@asnative.de Betreff: asnative.de :: newsletter #1 >>> Buch-Webseite: http://www.asnative.de I N T R O ================================================================= Herzlich willkommen zur ersten Newsletter-Ausgabe. Ich werde diesen dünnen Draht zu Ihnen vor allem nutzen, um bestimmte Feinheiten der Sprache ActionScript aufzufrischen, wachzurütteln oder um auf Stolperstellen einzugehen, welche mir in diversen Foren und Mailingslisten häufig wiederbegegnen. Themen-Vorschläge sind natürlich jederzeit willkommen. viele Grüße aus dem Elbtal, Ralf Siegel I N H A L T ================================================================= 1. Schon gewusst ? Der ActionScript MX - Tipp 2. Macromedia Flash Player 6 Public Beta ***************************************************************** 1. Schon gewusst ? Der ActionScript MX - Tipp ***************************************************************** Was genau passiert eigentlich in ActionScript's XML-Objekt mit Zeichen, welche in einem XML-Dokument nicht erlaubt sind ? Hier nochmal zur Erinnerung, um welche Zeichen es sich konkret handelt: http://www.w3schools.com/xml/xml_cdata.asp http://selfhtml.teamone.de/xml/regeln/zeichen.htm < ....... < > ....... > & ...... & ' ..... ' " ..... " Im folgenden Skript sehen Sie, wie etwa das Ampersand (&) scheinbar automatisch in die entsprechende Entität (&) umgewandelt wird. [ LISTING 1 ] ------------------------------------------------------ var mein_xml = new XML("Tipps & Tricks"); ______________________________________________________ Variable _level0.mein_xml = [object #1, class 'XMLNode'] {              Tipps & Tricks        } ______________________________________________________ Soweit, so gut. Ein häufig anzutreffender Fehler ist aber nun, dass dieser Textknoten später wie folgt ausgelesen wird: [ LISTING 2 ] ------------------------------------------------------ var mein_xml = new XML("Tipps & Tricks"); trace(mein_xml.firstChild.childNodes[0]); ______________________________________________________ Tipps & Tricks ______________________________________________________ Hier stellt man nun überrascht fest, dass in der Ausgabe die Entität (&) und nicht das ursprüngliche Ampersand (&) erscheint. Richtig wird es erst, wenn der Wert des Knotens über die Eigenschaft 'nodeValue' ausgelesen wird! [ LISTING 3 ] ------------------------------------------------------ var mein_xml = new XML("Tipps & Tricks"); trace(mein_xml.firstChild.childNodes[0].nodeValue); ______________________________________________________ Tipps & Tricks ______________________________________________________ Der Grund für dieses Verhalten ist recht einfach: die Eigenschaft 'nodeValue' ist nichts weiter als eine Get/Set-Eigenschaft (Buch S.406ff), welche die Konvertierung der nicht erlaubten Zeichen für Sie übernimmt. [ LISTING 4 ] ------------------------------------------------------ var node = XMLNode; ______________________________________________________ Variable _level0.node = [function 'XMLNode'] {    prototype:[object #2, class 'Object'] {      ...      nodeValue:[getter/setter] undefined,      ...    }  } ______________________________________________________ Schreiben/Lesen Sie Knoten-Werte nicht über diese 'nodeValue' Eigenschaft, dann umgehen Sie praktisch diese Auto-Konvertierung, was - wie im obigen Beispiel - zu unerwünschten Ausgabe-Ergebnissen führen kann. Mit Verwendung von 'nodeValue' sind Sie hingegen immer auf der sicheren Seite. ***************************************************************** 2. Macromedia Flash Player 6 Public Beta ***************************************************************** Ein neuer Flash-Player steht vor der Haustür: http://www.macromedia.com/software/flashplayer/special/beta/ Sollten Buch-Beispiele mit der neuen Version nicht richtig oder anders funktionieren, sagen Sie mir bitte unbedingt Bescheid. A B M E L D E N ================================================================= Sie erhalten diese E-Mail weil Sie sich in den Newsletter zum "Programmierhandbuch ActionScript" eingetragen haben. Wenn Sie diesen Newsletter nicht mehr erhalten wollen, schicken Sie bitte eine E-Mail an mailto:majordomo@mailingliste.kundenserver.de mit leerem Betreff und folgender Zeile in der Nachricht: unsubscribe newsletter@asnative.de ihre@emailadresse K O N T A K T ================================================================= mailto:buch@asnative.de