LoadVars-Klasse verwenden

Wenn Sie Material in Flash Player 6 oder später veröffentlichen und mehr Flexibilität benötigen als dies mit loadVariables() möglich ist, können Sie stattdessen die LoadVars-Klasse verwenden, um Variablen zwischen einer SWF-Datei und einem Server zu übertragen.

Die LoadVars-Klasse wurde in Flash Player 6 eingeführt, um eine klarere, objektorientiertere Schnittstelle für den Austausch von CGI-Daten mit einem Webserver zu bieten. Die LoadVars-Klasse bietet die folgenden Vorteile:

Sie müssen zum Aufrufen seiner Methoden ein LoadVars-Objekt erstellen. In diesem Objekt werden die geladenen Daten abgelegt.

Das folgende Verfahren zeigt, wie Sie mit ColdFusion und der LoadVars-Klasse E-Mails von einer SWF-Datei übertragen können.

HINWEIS

 

Um dieses Beispiel auszuführen, muss ColdFusion auf Ihrem Webserver installiert sein.

So laden Sie Daten mit dem LoadVars-Objekt:

  1. Erstellen Sie eine CFM-Datei in Macromedia Dreamweaver oder einem von Ihnen bevorzugten Texteditor. Fügen Sie der Datei folgenden Text hinzu:
    <cfif StructKeyExists(Form, "emailTo")>
    <cfmail to="#Form.emailTo#" from="#Form.emailFrom#" subject="#Form.emailSubject#">#Form.emailBody#</cfmail>
    &result=true
    <cfelse>
    &result=false
    </cfif>
    
  2. Speichern Sie die Datei unter dem Namen email.cfm, und laden Sie sie auf Ihre Website hoch.
  3. Erstellen Sie ein neues Dokument in Flash.
  4. Erstellen Sie auf der Bühne vier Eingabetextfelder und versehen Sie diese mit den folgenden Instanznamen: emailFrom_txt, emailTo_txt, emailSubject_txt und emailBody_txt.
  5. Erstellen Sie auf der Bühne ein dynamisches Textfeld mit dem Instanznamen debug_txt.
  6. Erstellen Sie ein Schaltflächensymbol, ziehen Sie eine Instanz auf die Bühne, und geben Sie dieser den Instanznamen submit_btn.
  7. Markieren Sie Bild 1 in der Zeitleiste, und öffnen Sie das Bedienfeld Aktionen (Fenster > Aktionen), wenn es noch nicht geöffnet ist.
  8. Geben Sie im Bedienfeld Aktionen den folgenden Code ein:
    this.submit_btn.onRelease = function() {
        var emailResponse:LoadVars = new LoadVars();
        emailResponse.onLoad = function(success:Boolean) {
        if (success) {
                debug_txt.text = this.result;
        } else {
                debug_txt.text = "Fehler beim Herunterladen von Inhalt";
        }
        };
        var email:LoadVars = new LoadVars();
        email.emailFrom = emailFrom_txt.text;
        email.emailTo = emailTo_txt.text;
        email.emailSubject = emailSubject_txt.text;
        email.emailBody = emailBody_txt.text;
        email.sendAndLoad("http://www.ihresite.com/email.cfm", emailResponse, "POST");
    };
    

    Dieses ActionScript erstellt eine neue LoadVars-Objektinstanz, kopiert die Werte aus den Textfeldern in die Instanz und übermittelt die Daten dann an den Server. Die CFM-Datei sendet die E-Mail und gibt eine Variable (true oder false) mit dem Namen result an die SWF-Datei zurück. Die Variable wird im Textfeld debug_txt angezeigt.

    HINWEIS

     

    Vergessen Sie nicht, anstelle der URL www.ihresite.com Ihre eigene Domäne anzugeben.

  9. Speichern Sie das Dokument unter sendEmail.fla, und veröffentlichen Sie es dann, indem Sie Datei > Veröffentlichen auswählen.
  10. Laden Sie sendEmail.fla in dasselbe Verzeichnis, in dem auch die Datei email.cfm (die in Schritt 2 gespeicherte und hochgeladene ColdFusion-Datei) gespeichert ist.
  11. Nun sollten Sie die SWF-Datei in einem Browser anzeigen und testen.

Weitere Informationen finden Sie im Eintrag zu LoadVars im ActionScript 2.0-Referenzhandbuch.

Flash Player 8 und höher unterstützen die onHTTPStatus-Ereignisprozedur für die LoadVars-, XML- und MovieClipLoader-Klassen, damit Benutzer Zugriff auf den Statuscode einer HTTP-Anforderung erhalten. So können Entwickler nun nicht nur feststellen, dass ein bestimmter Ladevorgang fehlgeschlagen ist, sondern auch warum.

Im folgenden Beispiel wird gezeigt, wie Sie mithilfe der onHTTPStatus-Ereignisprozedur der LoadVars-Klasse überprüfen können, ob eine Textdatei erfolgreich vom Server heruntergeladen wurde und welchen Statuscode die HTTP-Anforderung zurückgegeben hat.

So überprüfen Sie den HTTP-Status mit dem LoadVars-Objekt:

  1. Erstellen Sie ein neues Flash-Dokument, und speichern Sie es unter loadvars.fla.
  2. Fügen Sie dem ersten Bild der Hauptzeitleiste den folgenden ActionScript-Code hinzu:
    this.createTextField("params_txt", 10, 10, 10, 100, 21);
    params_txt.autoSize = "left";
    
    var my_lv:LoadVars = new LoadVars();
    my_lv.onHTTPStatus = function(httpStatus:Number) {
        trace("HTTP status is: " + httpStatus);
    };
    my_lv.onLoad = function(success:Boolean) {
        if (success) {
            trace("text file successfully loaded");
            params_txt.text = my_lv.dayNames;
        } else {
            params_txt.text = "unable to load text file";
        }
    };
    my_lv.load("http://www.helpexamples.com/flash/404.txt");
    /* Ausgabe:
        Fehler beim Öffnen des URL "http://www.helpexamples.com/flash/404.txt"
        HTTP-Status: 404
    */
    

    Mit dem vorstehenden Code wird auf der Bühne ein neues Textfeld erstellt und die autosize-Eigenschaft des Textfelds aktiviert. Als Nächstes werden ein LoadVars-Objekt und zwei Ereignisprozeduren erstellt: onHTTPStatus und onLoad. Die onHTTPStatus-Ereignisprozedur (unterstützt in Flash Player 8 und höher) wird aufgerufen, wenn ein LoadVars.load()- oder LoadVars.sendAndLoad()-Vorgang abgeschlossen wurde. Der an die onHTTPStatus-Ereignisprozedurfunktion übergebene Wert (im vorangegangenen Code httpStatus) enthält die Definition des HTTP-Statuscodes für den aktuellen Ladevorgang. Wenn die Textdatei von der SWF-Datei erfolgreich geladen werden konnte, wird der Wert für httpStatus auf 200 gesetzt (HTTP-Statuscode für OK). Wenn die Datei nicht auf dem Server vorhanden war, wird der Wert für httpStatus auf 404 gesetzt (HTTP-Statuscode für Nicht gefunden). Die zweite Ereignisprozedur (LoadVars.onLoad()) wird nach dem Laden der Datei aufgerufen. Wenn die Datei erfolgreich geladen wurde, wird der Wert für den Parameter success auf true gesetzt, andernfalls auf false. Schließlich wird die externe Datei mit der Methode LoadVars.load() geladen.

  3. Wählen Sie Steuerung > Film testen, um das Flash-Dokument zu testen.

    In Flash wird im Bedienfeld Ausgabe die Fehlermeldung angezeigt, dass das Bild nicht geladen werden konnte, da es nicht auf dem Server vorhanden ist. Über die onHTTPStatus-Ereignisprozedur wird der Statuscode 404 angezeigt, da die Datei nicht auf dem Server gefunden wurde. Mit der onLoad-Ereignisprozedur wird für die Texteigenschaft des Textfelds params_txt der Wert Textdatei konnte nicht geladen werden gesetzt.

    ACHTUNG

     

    Wenn ein Webserver keinen Statuscode an den Flash Player zurückgibt, wird an die onHTTPStatus-Ereignisprozedur die Zahl 0 zurückgegeben.


Flash CS3

 

Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/main/00001051.html