ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
 

Paket flash.net 


Das flash.net-Paket enthält Funktionen auf Paketebene zum Öffnen eines neuen Browserfensters, zum Senden einer URL-Anforderung an einen Server und zum Verarbeiten von Klassen-Aliasbezeichnungen.
Öffentliche Methoden
 FunktionDefiniert von
  
Sucht nach einer Klasse, für die mit dem Aufruf der Methode „registerClassAlias()“ ein Alias registriert wurde.
flash.net
  
navigateToURL(request:URLRequest, window:String = null):void
Öffnet oder ersetzt ein Fenster in der Anwendung mit dem Flash Player-Container (in der Regel ein Browser).
flash.net
  
registerClassAlias(aliasName:String, classObject:Class):void
Behält die Klasse (den Typ) eines Objekts bei, wenn dieses in Action Message Format (AMF) kodiert wird.
flash.net
  
Sendet eine URL-Anforderung an einen Server, Antworten werden jedoch ignoriert.
flash.net
Funktionsdetails

getClassByAlias

()Funktion
public function getClassByAlias(aliasName:String):Class

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Sucht nach einer Klasse, für die mit dem Aufruf der Methode registerClassAlias() ein Alias registriert wurde.

Es erfolgt keine Interaktion zwischen dieser Methode und der Methode flash.utils.getDefinitionByName().

Parameter

aliasName:String — Der zu suchende Alias.

Rückgabewerte
Class — Die mit dem gegebenen Alias verknüpfte Klasse. Falls die Suche nach der Klasse nicht erfolgreich ist, wird eine Ausnahme ausgelöst.

Auslöser
ReferenceError — Der Alias wurde nicht registriert.

Verwandte API-Elemente

navigateToURL

()Funktion 
public function navigateToURL(request:URLRequest, window:String = null):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Öffnet oder ersetzt ein Fenster in der Anwendung mit dem Flash Player-Container (in der Regel ein Browser). In Adobe AIR öffnet die Funktion eine URL im Standardwebbrowser des Systems

Wichtiger Sicherheitshinweis

Entwickler übergeben URL-Werte, die von externen Quellen wie z. B. FlashVars erhalten wurden, oft an die navigateToURL()-Funktion. Hacker können versuchen, die externen Quellen zu ändern, um Angriffe wie z. B. Cross-Site-Scripting durchzuführen. Aus diesem Grund sollten Entwickler alle URLs überprüfen, bevor sie sie an diese Funktion übergeben.

Eine gute Datenprüfung für URLs kann je nach dem Verwendungszweck der URL in der gesamten Anwendung Verschiedenes bedeuten. Eine der häufigsten Datenprüfmethode besteht darin, zu prüfen, ob die URL dem jeweiligen Schema entspricht. Wenn z. B. unbeabsichtigt javascript:-URLs erlaubt werden, kann dies in Cross-Site-Scripting resultieren. Durch die Prüfung, ob die URL innerhalb Ihrer Domäne ist, kann gewährleistet werden, dass die SWF-Datei nicht als offene Umleitung durch Personen verwendet werden kann, die Phishing-Angriffe ausführen. Als zusätzliche Sicherheitsmaßnahme könnten Sie außerdem den Pfad der URL prüfen bzw. auch prüfen, ob die URL den RFC-Richtlinien entspricht.

Der folgende Code ist ein einfaches Beispiel für eine Datenprüfung, bei der jede URL, die nicht mit http:// oder https:// beginnt, geblockt wird, und außerdem überprüft wird, ob sich die URL innerhalb Ihres Domänennamens befindet. Dieses Beispiel ist nicht unbedingt für alle Webanwendungen geeignet und Sie sollten sich überlegen, ob zusätzliche Prüfungen für URLs notwendig sind.

     // AS3 Regular expression pattern match for URLs that start with http:// and https:// plus your domain name.
     function checkProtocol (flashVarURL:String):Boolean {
        // Get the domain name for the SWF if it is not known at compile time.
        // If the domain is known at compile time, then the following two lines can be replaced with a hard coded string.
        var my_lc:LocalConnection = new LocalConnection();
        var domainName:String = my_lc.domain;
        // Build the RegEx to test the URL.
        // This RegEx assumes that there is at least one "/" after the
        // domain. http://www.mysite.com will not match.
        var pattern:RegExp = new RegExp("^http[s]?\:\\/\\/([^\\/]+)\\/");
        var result:Object = pattern.exec(flashVarURL);
        if (result == null || result[1] != domainName || flashVarURL.length >= 4096) {
          return (false);
        }
        return (true);
     }  
     
      

Für local-Inhalt, der in einem Browser ausgeführt wird, sind Aufrufe der navigateToURL()-Methode, die ein "javascript:"-Pseudoprotokoll (über ein URLRequest-Objekt, das als erster Parameter übergeben wurde) nur zulässig, wenn sich die SWF-Datei und die enthaltende Webseite (sofern es eine gibt) in der lokal vertrauenswürdigen Sicherheitssandbox befinden. Einige Browser unterstützen das Javascript-Protokoll mit der navigateToURL()-Methode nicht. Ziehen Sie stattdessen einen Aufruf der call()-Methode der ExternalInterface-API in Betracht, um JavaScript-Methoden innerhalb der umschließenden HTML-Seite aufzurufen.

In Flash Player und anwendungsfremden Sandboxen in Adobe AIR können Sie keine Verbindung mit normalerweise reservierten Ports herstellen. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch.

Wenn Flash Player 10 oder eine spätere Version im Browser ausgeführt wird, kann diese Methode eventuell nicht programmgesteuert verwendet werden, um ein Popupfenster zu öffnen. Verschiedene Browser (und Browserkonfigurationen) blocken eventuell Popupfenster. Es kann daher nicht sichergestellt werden, dass Popupfenster eingeblendet werden. Den größten Erfolg verspricht diese Methode zum Öffnen eines Popupfensters, und zwar aufgrund von Code, der als direktes Ergebnis einer Benutzeraktion ausgeführt wird, z. B. in einer Ereignisprozedur für ein Mausklick- oder Tastendruckereignis.

Wenn Sie in Flash Player 10 oder höher einen Multipart-Content-Type verwenden (z. B. „multipart/form-data“), der einen Upload enthält (gekennzeichnet durch einen „filename“-Parameter in einem „content-disposition“-Header innerhalb des POST-Body), so unterliegt die POST-Methode den Sicherheitsregeln für Uploads:

  • Der POST-Vorgang muss als Reaktion auf eine durch den Benutzer initiierte Aktion, z. B. Mausklick oder Tastendruck, erfolgen.
  • Ist die POST-Methode domänenübergreifend (das POST-Ziel befindet sich auf einem anderen Server als die SWF-Datei, die die POST-Anforderung sendet), so muss der Zielserver eine URL-Richtliniendatei bereitstellen, die den domänenübergreifenden Zugriff erlaubt.

Für alle mehrteiligen Content-Typen muss ebenfalls die Syntax nach Standard RFC2046 gültig sein. Scheint die Syntax ungültig zu sein, so unterliegt die POST-Methode den Sicherheitsregeln für Uploads.

In AIR werden auf mobilen Plattformen die URI-Schemas sms: und tel: unterstützt. Unter Android werden die URI-Schemas vipaccess:, connectpro: und market: unterstützt. Die URL-Syntax richtet sich nach den Plattformkonventionen. Unter Android muss das URI-Schema zum Beispiel in Kleinbuchstaben angegeben werden. Wenn Sie unter Verwendung eines dieser Schemas zu einer URL navigieren, öffnet die Laufzeitumgebung die URL in der Standardanwendung zur Verarbeitung dieses Schemas. Bei der Navigation zu tel:+5555555555 wird zum Beispiel die Telefonwahl geöffnet, wobei die Nummer bereits eingetragen wurde. Damit die URL verarbeitet werden kann, muss eine separate Anwendung oder Utility verfügbar sein, zum Beispiel ein Telefonwählprogramm.

Mit dem folgenden Code können Sie die Anwendungen VIP Access und Connect Pro unter Android aufrufen:

       //Invoke the VIP Access Application.
       navigateToURL(new URLRequest("vipaccess://com.verisign.mvip.main?action=securitycode"));
     
       //Invoke the Connect Pro Application.
       navigateToURL(new URLRequest("connectpro://"));
     
      

Parameter

request:URLRequest — Ein URLRequest-Objekt, das die URL angibt, zu der navigiert werden soll.

Für Inhalt, der in Adobe AIR ausgeführt wird, gilt: Wenn die navigateToURL()-Funktion verwendet wird, behandelt die Laufzeit ein URLRequest-Objekt, das die POST-Methode verwendet (ein Objekt, dessen method-Eigenschaft auf URLRequestMethod.POST eingestellt ist), so, als ob die GET-Methode verwendet wird.

 
window:String (default = null) — Das Browserfenster oder der HTML-Frame, in dem das mit dem Parameter request angegebene Dokument angezeigt werden soll. Sie können den Namen eines bestimmten Fensters angeben oder einen der folgenden Werte verwenden:
  • "_self" bezeichnet den aktuellen Frame im aktuellen Fenster.
  • "_blank" bezeichnet ein neues Fenster.
  • "_parent" bezeichnet den übergeordneten Frame des aktuellen Frames.
  • "_top" bezeichnet den obersten Frame im aktuellen Fenster.

Wenn Sie für diesen Parameter keinen Wert angeben, wird ein neues leeres Fenster erstellt. Im eigenständigen Player können Sie entweder ein neues Fenster ("_blank") oder ein benanntes Fenster angeben. Die anderen Werte treffen nicht zu.

Hinweis: Wenn eine SWF-Datei in der lokalen Dateisystem-Sandbox ausgeführt wird und mit einem Code, der sich in dieser SWF-Datei befindet, die Funktion navigateToURL() aufgerufen und ein benutzerdefinierter Fenstername für den Parameter window angegeben wird, wird der Fenstername in einen Zufallsnamen umgewandelt. Der Name hat die Form "_flashXXXXXXXX", wobei jedes X eine zufällige hexadezimale Zahl darstellt. Wenn Sie innerhalb derselben Sitzung (bis zum Schließen des jeweiligen Browserfensters) die Funktion erneut aufrufen und denselben Namen für den Parameter window angeben, wird derselbe Zufalls-String verwendet.


Auslöser
IOError — Die digest-Eigenschaft des request-Objekts ist nicht null. Sie sollten nur die digest-Eigenschaft eines zu verwendenden URLRequest-Objekts festlegen, das die URLLoader.load()-Methode beim Laden einer SWZ-Datei (einer Adobe-Plattformkomponente) aufruft.
 
SecurityError — In Flash Player (und in anwendungsfremden Sandboxinhalt in Adobe AIR), wird dieser Fehler in den folgenden Situationen zurückgegeben:
  • Über lokale nicht vertrauenswürdige SWF-Dateien kann keine Verbindung mit dem Internet hergestellt werden. Sie können diese Situation vermeiden, indem Sie die entsprechende SWF-Datei als lokal mit Netzwerkzugang oder als vertrauenswürdig klassifizieren.
  • Mit einem Navigationsvorgang wurde versucht, die Pseudo-URL eines Skripts zu evaluieren, das zugehörige Dokument (in der Regel ein HTML-Dokument in einem Browser) befindet sich jedoch in einer Sandbox, auf die Sie keinen Zugriff haben. Sie können diese Situation vermeiden, indem Sie im zugehörigen Dokument allowScriptAccess="always" angeben.
  • Sie können in den Fenstern "_self", "_top" und "_parent" nicht navigieren, wenn Ihre SWF-Datei in einer HTML-Seite enthalten ist, für die allowScriptAccess auf den Wert "none" oder auf den Wert "sameDomain" gesetzt ist (wenn die Domänen der HTML-Datei und der SWF-Datei nicht übereinstimmen).
  • Sie können nicht von einer SWF-Datei in einer lokalen Dateisystem-Sandbox aus in einem Fenster mit einem nicht standardmäßigen Namen navigieren.
  • Eine Verbindung mit normalerweise reservierten Ports ist nicht möglich. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch.
 
Error — Wenn die Methode nicht als Reaktion auf eine Benutzeraktion, z. B. Mausereignis oder Tastendruckereignis, aufgerufen wird. Diese Anforderung bezieht sich nur auf Inhalt in Flash Player und anwendungsfremden Sandboxinhalt in Adobe AIR.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

Im folgenden Beispiel wird die URL http://www.adobe.com in einem neuen Browserfenster geöffnet, und in einem URLVariables-Objekt erfasste Daten zu einer Benutzersitzung werden an den Webserver übergeben.
package {
    import flash.display.Sprite;
    import flash.net.navigateToURL;
    import flash.net.URLRequest;
    import flash.net.URLVariables;

    public class NavigateToURLExample extends Sprite {

        public function NavigateToURLExample() {
            var url:String = "http://www.adobe.com";
            var variables:URLVariables = new URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.exampleUserLabel = "Your Name";
            var request:URLRequest = new URLRequest(url);
            request.data = variables;
            try {            
                navigateToURL(request);
            }
            catch (e:Error) {
                // handle error here
            }
        }
    }
}

Im folgenden Beispiel wird gezeigt, wie Sie mit der navigateToURL()-Methode aus Flash Player neue Browserfenster öffnen können. Beispiel bereitgestellt von ActionScriptExamples.com.
// Requires
// - Button symbol on Stage (or a display object, such as a MovieClip) with instance name "buttonSymbol"
//
buttonSymbol.addEventListener(MouseEvent.CLICK, buttonSymbol_click);
 
function buttonSymbol_click(evt:MouseEvent):void {
    var req:URLRequest = new URLRequest("http://www.adobe.com/");
    navigateToURL(req, "_blank");
}

Das folgende Beispiel zeigt die Syntax zum Starten der Telefonwahl des Geräts mit der angegebenen Nummer.
var request:URLRequest = new URLRequest( "tel:+5555555555" );
navigateToURL( request );

Das folgende Beispiel zeigt die Syntax zum Starten der Textnachricht-Anwendung des Geräts mit dem angegebenen Empfänger.
var request:URLRequest = new URLRequest( "sms:+5555555555" );
navigateToURL( request );

Das folgende Beispiel zeigt die Syntax zum Starten der Android Market-App. Der Suchparameter ist zum Suchen der Flash Player-App eingestellt.
var request:URLRequest = new URLRequest( "market://search?q=pname:com.adobe.flashplayer" );
navigateToURL( request );

registerClassAlias

()Funktion 
public function registerClassAlias(aliasName:String, classObject:Class):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Behält die Klasse (den Typ) eines Objekts bei, wenn dieses in Action Message Format (AMF) kodiert wird. Bei der Kodierung eines Objekts in AMF speichert diese Funktion einen Alias für die Klasse des Objekts, sodass Sie die Klasse wiederherstellen können, wenn Sie das Objekt dekodieren. Wenn im Kontext der Kodierung kein Alias für eine Objektklasse registriert wird, erfolgt die Kodierung des Objekts als anonymes Objekt. Wenn im Kontext der Dekodierung nicht derselbe Alias registriert ist, wird für die dekodierten Daten ein anonymes Objekt erstellt.

LocalConnection, ByteArray, SharedObject, NetConnection und NetStream sind Beispiele für Klassen, die Objekte in AMF kodieren.

Für den Kodierungs- und Dekodierungskontext muss nicht dieselbe Klasse für einen Alias verwendet werden. Die Klassen können geändert werden, vorausgesetzt, dass die Zielklasse alle Mitglieder enthält, die von der Quellklasse serialisiert werden.

Parameter

aliasName:String — Der zu verwendende Alias.
 
classObject:Class — Die mit dem gegebenen Alias verknüpfte Klasse.


Auslöser
TypeError — Wenn einer der Parameter den Wert null aufweist.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

In diesem Beispiel wird die Funktion registerClassAlias() zur Registrierung eines Alias (com.example.eg) für die ExampleClass-Klasse verwendet. Die Registrierung eines Alias für die Klasse ermöglicht die Deserialisierung des Objekts als Instanz von ExampleClass, und der Code gibt den Wert true aus. Bei Entfernung des Aufrufs registerClassAlias() würde der Code den Wert false ausgeben.
package {
    import flash.display.Sprite;
    import flash.net.registerClassAlias;
    import flash.utils.ByteArray;

    public class RegisterClassAliasExample extends Sprite {
        public function RegisterClassAliasExample() {
            registerClassAlias("com.example.eg", ExampleClass);
            var eg1:ExampleClass = new ExampleClass();
            var ba:ByteArray = new ByteArray();
            ba.writeObject(eg1);
            ba.position = 0;
            var eg2:* = ba.readObject();
            trace(eg2 is ExampleClass); // true
        }
    }
}

class ExampleClass {}

sendToURL

()Funktion 
public function sendToURL(request:URLRequest):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Sendet eine URL-Anforderung an einen Server, Antworten werden jedoch ignoriert.

Verwenden Sie die MethodeURLLoader.load(), wenn die Serverantwort überprüft werden soll.

Eine Verbindung mit normalerweise reservierten Ports ist nicht möglich. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch.

Sie können eine SWF-Datei daran hindern, diese Methode aufzurufen, indem Sie auf der HTML-Seite, die den SWF-Inhalt enthält, den Parameter allowNetworking der Tags object und embed festlegen.

Wenn Sie in Flash Player 10 oder höher einen Multipart-Content-Type verwenden (z. B. „multipart/form-data“), der einen Upload enthält (gekennzeichnet durch einen „filename“-Parameter in einem „content-disposition“-Header innerhalb des POST-Body), so unterliegt die POST-Methode den Sicherheitsregeln für Uploads:

  • Der POST-Vorgang muss als Reaktion auf eine durch den Benutzer initiierte Aktion, z. B. Mausklick oder Tastendruck, erfolgen.
  • Ist die POST-Methode domänenübergreifend (das POST-Ziel befindet sich auf einem anderen Server als die SWF-Datei, die die POST-Anforderung sendet), so muss der Zielserver eine URL-Richtliniendatei bereitstellen, die den domänenübergreifenden Zugriff erlaubt.

Für alle mehrteiligen Content-Typen muss ebenfalls die Syntax nach Standard RFC2046 gültig sein. Scheint die Syntax ungültig zu sein, so unterliegt die POST-Methode den Sicherheitsregeln für Uploads.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Parameter

request:URLRequest — Ein URLRequest-Objekt, das die URL angibt, an die Daten gesendet werden sollen.


Auslöser
SecurityError — Über lokale nicht vertrauenswürdige SWF-Dateien kann keine Verbindung mit dem Internet hergestellt werden. Sie können diese Situation vermeiden, indem Sie die entsprechende SWF-Datei als lokal mit Netzwerkzugang oder als vertrauenswürdig klassifizieren.
 
SecurityError — Eine Verbindung mit normalerweise reservierten Ports ist nicht möglich. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch.

Beispiel  ( Verwendung dieses Beispiels )

Im folgenden Beispiel werden die in einem URLVariables-Objekt erfassten Daten zu einer Benutzersitzung an die Anwendung unter http://www.yourDomain.com/application.jsp übergeben.
 package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.net.URLVariables;
    import flash.net.sendToURL;

    public class SendToURLExample extends Sprite {

        public function SendToURLExample() {
            var url:String = "http://www.yourDomain.com/application.jsp";
            var variables:URLVariables = new URLVariables();
            variables.sessionId = new Date().getTime();
            variables.userLabel = "Your Name";

            var request:URLRequest = new URLRequest(url);
            request.data = variables;
            trace("sendToURL: " + request.url + "?" + request.data);
            try {
                sendToURL(request);
            }
            catch (e:Error) {
                // handle error here
            }
        }
    }
}

[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.