Naslaggids voor Adobe ActionScript® 3.0 voor het Adobe® Flash®-platform
Startpagina  |  Lijst met pakketten en klassen verbergen |  Pakketten  |  Klassen  |  Nieuw  |  Index  |  Bijlagen  |  Waarom in het Engels?
Filters: Gegevens ophalen van server...
Gegevens ophalen van server...
 

Pakket flash.net 


Het pakket flash.net bevat functies op pakketniveau voor het openen van een nieuw browservenster, het verzenden van een URL-aanvraag naar een server en het omgaan met klassealiassen.
Openbare methoden
 FunctieGedefinieerd door
  
Zoekt een klasse op waarvoor eerder een alias is geregistreerd via een aanroep van de methode registerClassAlias().
flash.net
  
navigateToURL(request:URLRequest, window:String = null):void
Opent of vervangt een venster in de toepassing die de Flash Player-container bevat (doorgaans een browser).
flash.net
  
registerClassAlias(aliasName:String, classObject:Class):void
Behoudt de klasse (het type) van een object wanneer het object wordt gecodeerd in AMF-indeling (Action Message Format).
flash.net
  
Verzendt een URL-aanvraag naar een server, maar negeert reacties.
flash.net
Functiedetails

getClassByAlias

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

Taalversie: ActionScript 3.0
Runtimeversies: AIR 1.0, Flash Player 9, Flash Lite 4

Zoekt een klasse op waarvoor eerder een alias is geregistreerd via een aanroep van de methode registerClassAlias().

Deze methode communiceert niet met de methode flash.utils.getDefinitionByName().

Parameters

aliasName:String — De alias waarnaar moet worden gezocht.

Geretourneerde waarde
Class — De klasse die is gekoppeld aan de opgegeven alias. Wanneer deze niet wordt gevonden, wordt een uitzondering gegenereerd.

Gegenereerde uitzondering
ReferenceError — De alias is niet geregistreerd.

Verwante API-elementen

navigateToURL

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

Taalversie: ActionScript 3.0
Runtimeversies: AIR 1.0, Flash Player 9, Flash Lite 4

Opent of vervangt een venster in de toepassing die de Flash Player-container bevat (doorgaans een browser). In Adobe AIR opent de functie een URL in de standaardwebbrowser van het systeem

Belangrijke beveiligingsoverweging

Ontwikkelaars geven aan de functie navigateToURL() vaak URL-waarden door die afkomstig zijn uit externe bronnen zoals FlashVars. Aanvallers kunnen deze externe bronnen proberen te manipuleren om bijvoorbeeld cross-site scripting uit te voeren. Daarom moeten ontwikkelaars alle URL's valideren voordat ze die aan deze functie doorgeven.

Hoe URL's op een goede manier worden gevalideerd, is afhankelijk van het gebruik van de URL in de toepassing. Bij de meest algemene technieken voor gegevensvalidatie wordt onder andere gecontroleerd of de URL het juiste schema heeft. Als bijvoorbeeld onbedoeld javascript:-URL's worden toegestaan, kan dit leiden tot cross-site scripting. Als u controleert of de URL binnen uw domein bestaat, weet u zeker dat het SWF-bestand niet als een open-redirector kan worden gebruikt voor phishing. Voor extra veiligheid kunt u ook het pad van de URL valideren en controleren of de URL voldoet aan de RFC-richtlijnen

De volgende code bevat een eenvoudig voorbeeld waarin gegevens worden gevalideerd door elke URL te weigeren die niet begint met http:// of https:// en te controleren of de URL binnen uw domeinnaam bestaat. Dit voorbeeld is mogelijk niet geschikt voor alle webtoepassingen en u moet zelf bedenken welke extra controles voor URL's nodig zijn.

     // 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);
     }  
     
      

Voor lokale inhoud die in een browser wordt uitgevoerd, zijn aanroepen van de methode navigateToURL() waarbij een "javascript:" pseudo-protocol is opgegeven (via een object URLRequest dat is doorgegeven als de eerste parameter) alleen toegestaan wanneer het SWF-bestand en de bijbehorende webpagina (indien deze bestaat) zich in de beveiligingssandbox Lokaal-vertrouwd bevinden. Sommige browsers ondersteunen dit javascript-protocol met de methode navigateToURL() niet. Overweeg in plaats daarvan de methode call() van de API ExternalInterface te gebruiken om JavaScript-methoden aan te roepen binnen de betreffende HTML-pagina.

In Flash Player en in niet-toepassingssandboxen in Adobe AIR kunt u geen verbinding maken met doorgaans gereserveerde poorten. Zie "Netwerk-API's beperken" in de Adobe ActionScript 3.0-ontwikkelaarsgids voor een volledige lijst van geblokkeerde poorten.

Als u in Flash Player 10 en hoger tijdens uitvoering in een browser deze methode via programmacode gebruikt om een pop-upvenster te openen, lukt dit mogelijk niet. Verschillende browsers (en browserconfiguraties) blokkeren pop-upvensters namelijk vaak en er kan dus niet worden gegarandeerd dat het venster daadwerkelijk wordt weergegeven. De meeste kans op succes hebt u als u deze methode alleen gebruikt om een pop-upvenster te openen in code die wordt uitgevoerd als een direct resultaat van een gebruikersactie (zoals in een gebeurtenishandler voor een muisklik of het indrukken van een toets.)

Als u in Flash Player 10 en hoger een multipart-inhoudstype gebruikt (bijvoorbeeld 'multipart/form-data') dat een upload bevat (aangegeven met de parameter 'bestandsnaam' in een header 'content-disposition' binnen de POST-body), gelden voor de POST-bewerking de beveiligingsregels die van toepassing zijn op uploads:

  • De POST-bewerking moet worden uitgevoerd in reactie op een door de gebruiker geïnitieerde actie, zoals het klikken met de muis of het indrukken van een toets.
  • Als bij de POST-bewerking verschillende domeinen betrokken zijn (het doel van de POST-bewerking bevindt zich niet op dezelfde server als het SWF-bestand dat de POST-aanvraag verstuurt), moet de doelserver een URL-beleidsbestand leveren dat interdomeintoegang toestaat.

In het geval van een multipart-inhoudstype is het ook essentieel dat de syntaxis juist is (in overeenstemming met de norm RFC2046). Als de syntaxis ongeldig lijkt te zijn, gelden voor de POST-bewerking de beveiligingsregels die van toepassing zijn op uploads.

In AIR en op mobiele platforms worden de URI-schema's sms: en tel: ondersteund. Op Android worden de URI-schema's vipaccess:, connectpro: en market: ondersteund. De URL-syntaxis wordt bepaald door de conventies voor het desbetreffende platform. Op Android-systemen moet het URI-schema bijvoorbeeld in kleine letters worden ingevoerd. Wanneer u naar een URL navigeert met behulp van een van deze schema's, wordt de URL door de runtime geopend in de standaardtoepassing voor het verwerken van het schema. Als u dus navigeert naar tel:+5555555555, wordt de telefoonkiezer geopend, waarbij het opgegeven nummer al is ingevoerd. Voor het verwerken van de URL moet een aparte toepassing of een apart hulpprogramma beschikbaar zijn.

De volgende code toont u hoe u de VIP Access- en Connect Pro-toepassingen oproept op Android:

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

Parameters

request:URLRequest — Een object URLRequest dat de URL aangeeft waarnaar moet worden genavigeerd.

Wanneer voor inhoud die wordt uitgevoerd in Adobe AIR de functie navigateToURL() wordt gebruikt, behandelt de runtime een URLRequest dat de methode POST gebruikt (een methode waarvan de eigenschap method is ingesteld op URLRequestMethod.POST ), alsof de methode GET wordt gebruikt.

 
window:String (default = null) — Het browservenster of HTML-frame waarin het document moet worden weergegeven dat wordt aangegeven door de parameter request. U kunt de naam van een specifiek venster opgeven of een van de volgende waarden gebruiken:
  • "_self" geeft het huidige frame in het huidige venster op.
  • "_blank" geeft een nieuw venster op.
  • "_parent" geeft het frame op dat boven het huidige frame ligt.
  • "_top" geeft het hoogste frame in het huidige venster op.

Wanneer u geen waarde opgeeft voor deze parameter, wordt een nieuw, leeg venster gemaakt. In de zelfstandige speler kunt u een nieuw ("_blank") venster of een venster met een naam opgeven. De overige waarden zijn niet van toepassing.

Opmerking: wanneer code in een SWF-bestand dat in de sandbox Lokaal-met-bestandssysteem wordt uitgevoerd, de functie navigateToURL() aanroept en een aangepaste vensternaam voor de parameter window opgeeft, wordt de vensternaam in een willekeurige naam omgezet. De naam heeft de notatie "_flashXXXXXXXX", waarbij elke X een willekeurig hexadecimaal cijfer vertegenwoordigt. Wanneer u de functie binnen dezelfde sessie (die actief is totdat u het overeenkomende browservenster sluit) opnieuw aanroept en dezelfde naam voor de parameter window opgeeft, wordt dezelfde willekeurige tekenreeks gebruikt.


Gegenereerde uitzondering
IOError — De eigenschap digest van het object request is niet null. U moet de eigenschap digest van een object URLRequest alleen instellen wanneer u tijdens het laden van een SWZ-bestand (een component van het Adobe-platform) de methode URLLoader.load() aanroept.
 
SecurityError — In Flash Player (en in inhoud van een niet-toepassingssandbox in Adobe AIR) wordt deze fout in de volgende situaties gegenereerd:
  • Lokale niet-vertrouwde SWF-bestanden mogen niet communiceren met internet. U kunt deze situatie vermijden door dit SWF-bestand opnieuw te classificeren als lokaal-met-netwerk of vertrouwd.
  • Een navigatiebewerking heeft geprobeerd een pseudo-URL met scripts te evalueren, maar het omvattende document (doorgaans een HTML-document in een browser) komt uit een sandbox waartoe u geen toegang hebt. U kunt dit voorkomen door allowScriptAccess="always" op te geven in het omvattende document.
  • U kunt niet navigeren door de speciale vensters "_self", "_top" of "_parent" wanneer uw SWF-bestand zich bevindt in een HTML-pagina waarvoor allowScriptAccess is ingesteld op"none" of op"sameDomain" wanneer de domeinen van het HTML-bestand en het SWF-bestand niet overeenkomen.
  • U kunt niet navigeren door een venster met een niet-standaardnaam vanuit een SWF-bestand dat zich in de sandbox Lokaal-met-bestandssysteem bevindt.
  • U kunt geen verbinding maken met algemeen gereserveerde poorten. Zie "Netwerk-API's beperken" in de Adobe ActionScript 3.0-ontwikkelaarsgids voor een volledige lijst van geblokkeerde poorten.
 
Error — Als de methode niet wordt aangeroepen in reactie op een gebruikersactie, zoals het klikken met de muis of het indrukken van een toets. Deze vereiste is alleen van toepassing op inhoud in Flash Player en op inhoud van een niet-toepassingssandbox in Adobe AIR.

Meer voorbeelden

Verwante API-elementen


Voorbeeld  ( Hoe dit voorbeeld te gebruiken )

In het volgende voorbeeld wordt de URL http://www.adobe.com geopend in een nieuw browservenster en worden gegevens over een gebruikerssessie, vastgelegd in een object URLVariables, doorgegeven aan de webserver.
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
            }
        }
    }
}

In het volgende voorbeeld wordt weergegeven hoe u nieuwe browservensters kunt openen vanaf Flash Player met behulp van de navigateToURL()-methode. Voorbeeld van 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");
}

In het volgende voorbeeld wordt de syntax weergegeven voor het starten van de telefoonkiezer van het apparaat met een opgegeven nummer.
var request:URLRequest = new URLRequest( "tel:+5555555555" );
navigateToURL( request );

In het volgende voorbeeld wordt de syntax weergegeven voor het starten van de toepassing voor het apparaattekstbericht met een opgegeven ontvanger.
var request:URLRequest = new URLRequest( "sms:+5555555555" );
navigateToURL( request );

In het volgende voorbeeld wordt de syntax weergegeven voor het starten van de Android Market-toepassing. De zoekparameter wordt ingesteld voor het zoeken van de Flash Player-toepassing.
var request:URLRequest = new URLRequest( "market://search?q=pname:com.adobe.flashplayer" );
navigateToURL( request );

registerClassAlias

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

Taalversie: ActionScript 3.0
Runtimeversies: AIR 1.0, Flash Player 9, Flash Lite 4

Behoudt de klasse (het type) van een object wanneer het object wordt gecodeerd in AMF-indeling (Action Message Format). Wanneer u een object codeert met AMF, slaat deze functie de alias voor de bijbehorende klasse op, zodat u de klasse kunt herstellen bij het decoderen van het object. Wanneer de coderingscontext geen alias voor de klasse van een object heeft geregistreerd, wordt het object gecodeerd als een anoniem object. Wanneer de decoderingscontext niet dezelfde alias heeft geregistreerd, wordt een anoniem object gemaakt voor de gedecodeerde gegevens.

LocalConnection, ByteArray, SharedObject, NetConnection en NetStream zijn voorbeelden van klassen die objecten coderen met AMF.

De coderings- en decoderingscontexten hoeven niet dezelfde klasse voor een alias te gebruiken. Klassen kunnen met opzet worden gewijzigd, mits de doelklasse alle leden bevat waarvoor de bronklasse serienummering toepast.

Parameters

aliasName:String — De alias die moet worden gebruikt.
 
classObject:Class — De klasse die is gekoppeld aan de opgegeven alias.


Gegenereerde uitzondering
TypeError — Wanneer elk van de parameters null is.

Verwante API-elementen


Voorbeeld  ( Hoe dit voorbeeld te gebruiken )

In dit voorbeeld wordt de functie registerClassAlias() gebruikt om een alias (com.example.eg) te registreren voor de klasse ExampleClass. Aangezien een alias wordt geregistreerd voor de klasse, kan het object als een instantie van ExampleClass worden gedeserialiseerd en geeft de code true als uitvoer. Wanneer de aanroep van registerClassAlias() zou worden verwijderd, zou de code false als uitvoer geven.
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

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

Taalversie: ActionScript 3.0
Runtimeversies: AIR 1.0, Flash Player 9, Flash Lite 4

Verzendt een URL-aanvraag naar een server, maar negeert reacties.

Wanneer u de serverreactie wilt onderzoeken, gebruikt u de methode URLLoader.load().

U kunt geen verbinding maken met algemeen gereserveerde poorten. Zie "Netwerk-API's beperken" in de Adobe ActionScript 3.0-ontwikkelaarsgids voor een volledige lijst van geblokkeerde poorten.

U kunt voorkomen dat een SWF-bestand deze methode gebruikt door de parameter allowNetworking in te stellen van de tags object en embed op de HTML-pagina die de SWF-inhoud bevat.

Als u in Flash Player 10 en hoger een multipart-inhoudstype gebruikt (bijvoorbeeld 'multipart/form-data') dat een upload bevat (aangegeven met de parameter 'bestandsnaam' in een header 'content-disposition' binnen de POST-body), gelden voor de POST-bewerking de beveiligingsregels die van toepassing zijn op uploads:

  • De POST-bewerking moet worden uitgevoerd in reactie op een door de gebruiker geïnitieerde actie, zoals het klikken met de muis of het indrukken van een toets.
  • Als bij de POST-bewerking verschillende domeinen betrokken zijn (het doel van de POST-bewerking bevindt zich niet op dezelfde server als het SWF-bestand dat de POST-aanvraag verstuurt), moet de doelserver een URL-beleidsbestand leveren dat interdomeintoegang toestaat.

In het geval van een multipart-inhoudstype is het ook essentieel dat de syntaxis juist is (in overeenstemming met de norm RFC2046). Als de syntaxis ongeldig lijkt te zijn, gelden voor de POST-bewerking de beveiligingsregels die van toepassing zijn op uploads.

Lees voor meer informatie over beveiliging het onderwerp Security in het Flash Player Developer Center.

Parameters

request:URLRequest — Een object URLRequest dat de URL opgeeft waarnaar gegevens moeten worden verzonden.


Gegenereerde uitzondering
SecurityError — Lokale niet-vertrouwde SWF-bestanden kunnen niet communiceren met internet. U kunt deze situatie vermijden door dit SWF-bestand opnieuw te classificeren als lokaal-met-netwerk of vertrouwd.
 
SecurityError — U kunt geen verbinding maken met algemeen gereserveerde poorten. Zie "Netwerk-API's beperken" in de Adobe ActionScript 3.0-ontwikkelaarsgids voor een volledige lijst van geblokkeerde poorten.

Voorbeeld  ( Hoe dit voorbeeld te gebruiken )

In het volgende voorbeeld worden gegevens over een gebruikerssessie, vastgelegd in een object URLVariables, doorgegeven aan de toepassing op http://www.yourDomain.com/application.jsp.
 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 ]Waarom in het Engels?
Sommige inhoud van de Naslaggids voor ActionScript 3.0 staat in het Engels

Niet alle onderdelen van de Naslaggids voor ActionScript 3.0 zijn in alle talen vertaald. Wanneer een taalelement niet is vertaald, wordt het in het Engels weergegeven. Zo is de klasse ga.controls.HelpBox niet in elke taal vertaald. In de Nederlandse versie van de naslaggids wordt de klasse ga.controls.HelpBox bijvoorbeeld in het Engels weergegeven.