Flash – Auslesen von XML-Datei funktioniert nicht auf Server

Da hat man ein richtig gutes Script geschrieben, welches XML Dateien ausliest und in Flash weiterverarbeitet und dann das: Lädt man die Datei hoch bzw. verwendet man die erstellte swf-Datei in einer HTML-Datei bzw. Webseite, wird das XML nicht mehr ausgelesen und die Anwendung funktioniert nicht mehr.

Ursache ist oft die falsche Einbindung der Datei. Gibt man zum Beispiel als Quelle der swf-Datei

http://www.domain.de/test.swf

an, holt sich die XML-Datei im Script aber über

 http://domain.de /test.xml

, so verhindern Sicherheitseinstellungen das Laden der XML-Datei. Abhilfe schafft die Anpassung der URLs.

Bewegungstween mit Actionscript 3 erstellen

Um über Actionscript3 einen Bewegungstween zu erstellen, muss man die Tween-Klasse benutzen.
Diese muss zuerst importiert werden:

import mx.transitions.Tween;
import mx.transitions.easing.*;

Die erste Importanweisung importiert die Tween-Klasse, die zweite die Beschleunigungsklassen. Nun kann man ein Tween-Objekt erstellen und den Tween umsetzen:

var myTween:Tween = new Tween(myMovieClip, "_alpha", Elastic.easeOut, 0, 100, 3, true);

Der Tween setzt den Clip myMovieClip von einem Alphawert 0 auf den Alphawert 100 innerhalb einer Geschwindigkeit von 3 Sekunden. Der vorletzte Wert gibt die Sekunden an, wenn der letzte Wert auf true steht. Steht der letzte Wert auf false, werden statt Sekunden Schlüsselbilder verwendet.

E-mail per Actionscript2 und PHP senden

Um aus einem Acionscript oder Actionscript 2 – gesteuerten Film eine E-Mail, z.B. aus einem
Formular zu versenden, kann man die PHP Funktion mail() nutzen, die über einen Webserver eine Mail versendet, ohne dass der User ein E-Mail Programm installiert haben muss, wie es z.B. bei mailto() der Fall ist.

Sagen wir das das Formular enthält 2 Eingabetextfelder firma und email. Nach Klick auf den Senden-Button führt man zuerst das Versenden der variablen durch. Wichtig ist im Beispiel, dass die swf im selben Verzeichnis wie das PHP-Script liegt.

sendbutton.onRelease = function
{
	var loadsend:LoadVars = new LoadVars()
	loadsend.sendAndLoad("script.php", this, "POST");
}

So sollte das PHP-Script aussehen:

//Empfänger E-Mail angeben
$mailto="email_des_empfaengers@web.de";

//Variablen verarbeiten
$inhalt = "Firma: ".$_POST['firma']."\n";
$inhalt .= "E-Mail: ".$_POST['email']."\n";

//Mail senden
$senden = mail($mailto, "Mail von".$_POST['firma'], $inhalt, "From: ".$_POST['email']);

//Wert zurückgeben
echo "senden=$senden";

Nach dem Versand steht in Flash die Variable senden zur Verfügung, welche bei erfolgreichem versand true, andernfalls false ist.

Mit attachMovie erzeugten MovieClip zentrieren / AS2

Um in Actionscript 2 einen mit attachMovie erzeugten MovieClip auf der Bühne zu zentrieren, geht man wie im folgenden Beispiel vor.

attachMovie('myClip','myNewClip',1);
myNewClip._width = 100;
myNewClip._height = 50;
myNewClip._x = (Stage.width/2) - (myNewClip._width/2);
myNewClip._y = (Stage.height/2) - (myNewClip._height/2);

Im Beispiel liegt der Clip myClip in der Bibliothek und wird mittels attachMovie() als myNewClip auf die Bühne gelegt. Dann werden ihm Höhe und Breite zugewiesen. Als letzten Schritt berechnen wir die Position, in dem wir die Bühnenbreite / Bühnenhöhe teilen und davon die halbe Breite / Höhe des Clips abziehen.

Preloader Actionscript 3

Um in Actionscript 3 zum Beispiel für eine zu ladende XML-Datei einen Preloader zu nutzen, kann man folgendermaßen vorgehen:

Zuerst lädt man das XML-File.

//Loaderklasse initialisieren
var xml_loader = new URLLoader();

//XML laden
xml_loader.load(new URLRequest('test.xml'));

Nun kann man den Ladezustand abfragen:

//Code während des Ladens ausführen
xml_loader.addEventListener(ProgressEvent.PROGRESS,preloadingFunction);

//Am Ende des Ladeprozesses wird xml mit Funktion xmlParsing verarbeitet
xml_loader.addEventListener(Event.COMPLETE,xmlParsing);