PDF Fähigkeit in Actionscript 3 überprüfen

Neben

Über einen HTMLLoader ist es mit installiertem Adobe Reader in Actionscript 3 auch möglich, PDF-Dateien anzuzeigen. Um zu testen, ob der aktuelle Client die PDF-Dateien anzeigen kann – sprich Adobe Reader installiert ist – hilft folgendes Snippet:

if(HTMLLoader.pdfCapability == HTMLPDFCapability.STATUS_OK) {
    //PDFs können dargestellt werden
} else {
    //PDFs können nicht dargestellt werden
}

AMFPHP-Error #2044

AMFPHP ist eine Schnittstelle für verschiedene Programmiersprachen zur Ausführung von serverseitigen Code. Man kann mit der Hilfe von AMFPHP eine serverseitige Applikation mit Datenbankanbindung per Actionscript umsetzen. Doch nicht immer funktioniert das so einfach, wie es in manch einem Tutorial steht. Da ich selbst auf einen sehr merkwürdigen Fehler gestoßen bin, möchte ich hier die Lösung des Problems bekannt geben.

Es handelt sich um folgenden Fehler:

Error #2044: NetStatusEvent unverarbeitet. level=error, code=NetConnection.Call.BadVersion

Dieser kann beseitigt werden, indem man in der gateway.php von AMFPHP

define("PRODUCTION_SERVER", true);

in

define("PRODUCTION_SERVER", false);

ändert.

Globale Variablen ohne Objektorientierung in Actionscript3

Mit der Einführung von Actionscript3 verschwand das aus Actionscript2 bekannte “_global”, mit dem es möglich war, eine Variable im gesamten Flashdokument anzusteuern. In Actionscript3 gibt es zwar nun die Möglichkeit eine Variable “public” in einem package zu definieren, aber nicht jeder arbeitet objektorientiert. Der nachfolgende Code gibt dir die Möglichkeit, eine Variable (die im Root des Flashdokuments definiert wurde) anzusteueren:

var meineVariable:String = "Ich bin im gesamten Flashdokument erreichbar.";
/* Diese Variable muss im Root des Flashdokuments definiert werden */
/* So rufen sie die Variable in jedem untergeordnetem Movieclip auf */
MovieClip(this.root).meineVariable;

Du kannst die Variable auch außerhalb des Roots definieren. Allerdings musst du die Variable dann folgendermaßen aufrufen:

MovieClip(this.root).untergeordneterMovieclip.meineVariable;