Pacchettoflash.net
Classepublic class URLLoader
EreditarietàURLLoader Inheritance EventDispatcher Inheritance Object

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

La classe URLLoader scarica i dati da un URL sotto forma di testo, dati binari o variabili con codifica URL. Ciò è utile per scaricare file di testo, XML o altre informazioni da utilizzare in un'applicazione dinamica basata su dati.

Un oggetto URLLoader scarica tutti i dati da un URL prima di renderli disponibili per ActionScript. Invia delle notifiche relative all'avanzamento dello scaricamento, che è possibile monitorare mediante le proprietà bytesLoaded e bytesTotal, oltre che mediante gli eventi inviati.

Quando si utilizza questo metodo, considerare il modello di sicurezza di Adobe® Flash® Player:

Per Flash Player 8 e versioni successive:

Per Flash Player 7 e versioni successive:

Per ulteriori informazioni, vedere i seguenti riferimenti:

Nei file SWF in esecuzione su una versione di Flash Player precedente alla 7, url deve trovarsi nello stesso superdominio del file SWF che effettua la chiamata. Per identificare il superdominio, rimuovere la parte più a sinistra dell'URL di un file. Ad esempio, un file SWF all'indirizzo www.adobe.com può scaricare i dati da origini presenti in store.adobe.com poiché entrambi i file si trovano nello stesso superdominio di nome adobe.com.

Vedere gli esempi

Vedere anche

URLRequest
URLVariables
URLStream
Lettura di documenti XML esterni
Operazioni con i dati esterni


Proprietà pubbliche
 ProprietàDefinito da
  bytesLoaded: uint = 0
Indica il numero di byte che sono stati caricati fino a quel momento durante l'operazione di caricamento.
URLLoader
  bytesTotal: uint = 0
Indica il numero totale di byte dei dati scaricati.
URLLoader
 Inheritedconstructor: Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
  data: *
I dati ricevuti dall'operazione di caricamento.
URLLoader
  dataFormat: String = "text"
Controlla se i dati scaricati vengono ricevuti sotto forma di testo (URLLoaderDataFormat.TEXT), dati binari originari (URLLoaderDataFormat.BINARY) o variabili con codifica URL (URLLoaderDataFormat.VARIABLES).
URLLoader
 Inheritedprototype: Object
[statico] Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
Object
Metodi pubblici
 MetodoDefinito da
  
URLLoader(request:URLRequest = null)
Crea un oggetto URLLoader.
URLLoader
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un oggetto listener di eventi con un oggetto EventDispatcher, in modo che il listener riceva la notifica di un evento.
EventDispatcher
  
Chiude l'operazione di caricamento in corso.
URLLoader
 Inherited
Invia un evento nel flusso di eventi.
EventDispatcher
 Inherited
Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento.
EventDispatcher
 Inherited
Indica se per un oggetto è definita una proprietà specifica.
Object
 Inherited
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
  
load(request:URLRequest):void
Invia e carica i dati da un URL specificato.
URLLoader
 Inherited
Indica se la proprietà specificata esiste ed è enumerabile.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Rimuove un listener dall'oggetto EventDispatcher.
EventDispatcher
 Inherited
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
 Inherited
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
 Inherited
Restituisce il valore di base dell'oggetto specificato.
Object
 Inherited
Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato.
EventDispatcher
Eventi
 Evento Riepilogo Definito da
 Inherited Inviato quando Flash Player riceve lo stato di attivazione del sistema operativo e diventa attivo.EventDispatcher
   Inviato dopo che tutti i dati ricevuti sono stati decodificati e collocati nella proprietà data dell'oggetto URLLoader.URLLoader
 Inherited Inviato quando Flash Player perde lo stato di attivazione del sistema operativo e sta per diventare inattivo.EventDispatcher
   Inviato se una chiamata a URLLoader.load() tenta di accedere ai dati via HTTP e l'ambiente Flash Player corrente è in grado di rilevare e restituire il codice di stato della richiesta.URLLoader
   Inviato se una chiamata a URLLoader.load() produce un errore irreversibile che interrompe lo scaricamento.URLLoader
   Inviato quando l'operazione di scaricamento inizia in seguito a una chiamata al metodo URLLoader.load().URLLoader
   Inviato quando vengono ricevuti i dati mentre è in corso l'operazione di scaricamento.URLLoader
   Inviato se una chiamata al metodo URLLoader.load() tenta di caricare dati da un server al di fuori della funzione di sicurezza sandbox.URLLoader
Descrizione delle proprietà
bytesLoadedproprietà
public var bytesLoaded:uint = 0

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Indica il numero di byte che sono stati caricati fino a quel momento durante l'operazione di caricamento.

bytesTotalproprietà 
public var bytesTotal:uint = 0

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Indica il numero totale di byte dei dati scaricati. Questa proprietà contiene 0 mentre l'operazione di caricamento è in corso e viene compilata al termine dell'operazione. Inoltre, un'intestazione Content-Length mancante causa l'indeterminazione di bytesTotal.

dataproprietà 
public var data:*

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

I dati ricevuti dall'operazione di caricamento. Questa proprietà viene compilata solo quando l'operazione di caricamento è stata completata. Il formato dei dati dipende dall'impostazione della proprietà dataFormat:

Se la proprietà dataFormat è URLLoaderDataFormat.TEXT, i dati ricevuti sono costituiti da una stringa che contiene il testo del file caricato.

Se la proprietà dataFormat è URLLoaderDataFormat.BINARY, i dati ricevuti sono costituiti da un oggetto ByteArray che contiene i dati binari originari.

Se la proprietà dataFormat è URLLoaderDataFormat.VARIABLES, i dati ricevuti sono costituiti da un oggetto URLVariables che contiene le variabili con codifica URL.

Vedere anche

dataFormatproprietà 
public var dataFormat:String = "text"

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Controlla se i dati scaricati vengono ricevuti sotto forma di testo (URLLoaderDataFormat.TEXT), dati binari originari (URLLoaderDataFormat.BINARY) o variabili con codifica URL (URLLoaderDataFormat.VARIABLES).

Se il valore della proprietà dataFormat è URLLoaderDataFormat.TEXT, i dati ricevuti sono costituiti da una stringa che contiene il testo del file caricato.

Se il valore della proprietà dataFormat è URLLoaderDataFormat.BINARY, i dati ricevuti sono costituiti da un oggetto ByteArray che contiene i dati binari originari.

Se il valore della proprietà dataFormat è URLLoaderDataFormat.VARIABLES, i dati ricevuti sono costituiti da un oggetto URLVariables che contiene le variabili con codifica URL.

Il valore predefinito è URLLoaderDataFormat.TEXT.

Vedere anche

Descrizione della funzione di costruzione
URLLoader()Funzione di costruzione
public function URLLoader(request:URLRequest = null)

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Crea un oggetto URLLoader.

Parametri
request:URLRequest (default = null) — Un oggetto URLRequest che specifica l'URL da scaricare. Se questo parametro viene omesso, non inizia alcuna operazione di caricamento. Se specificato, l'operazione di caricamento inizia immediatamente (per ulteriori informazioni, vedere la voce load).

Vedere anche

Descrizione dei metodi
close()metodo
public function close():void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Chiude l'operazione di caricamento in corso. Tutte le operazioni di caricamento in corso vengono immediatamente terminate. Se al momento non è in corso lo streaming di un URL, viene generato un errore di streaming non valido.

load()metodo 
public function load(request:URLRequest):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Invia e carica i dati da un URL specificato. I dati possono essere ricevuti sotto forma di testo, dati binari originari o variabili con codifica URL, a seconda del valore che è stato impostato per la proprietà dataFormat. Il valore predefinito per la proprietà dataFormat è text. Per inviare dati all'URL specificato, è possibile impostare la proprietà data nell'oggetto URLRequest.

Nota: se un file caricato contiene caratteri non ASCII come in molte lingue diverse dall'inglese, si consiglia di salvare il file con una codifica UTF-8 o UTF-16, in contrapposizione a un formato non codificato con Unicode come ASCII.

Quando si utilizza questo metodo, considerare il modello di sicurezza di Flash Player:

Per Flash Player 9 e versioni successive, è possibile impedire a un file SWF di utilizzare questo metodo impostando il parametro allowNetworking dei tag object ed embed nella pagina HTML in cui è presente il contenuto SWF.

Per Flash Player 8 e versioni successive:

Per Flash Player 7 e versioni successive l'accesso a una risorsa sui siti Web è consentito mediante un file dei criteri per i domini. Nei file SWF di qualunque versione eseguita in Flash Player 7 e versioni successive, url deve trovarsi esattamente nello stesso dominio. Ad esempio, un file SWF sul sito www.adobe.com può caricare i dati solo dalle origini presenti in www.adobe.com.

Per ulteriori informazioni, vedere i seguenti riferimenti:

Nei file SWF in esecuzione su una versione di Flash Player precedente alla 7, url deve trovarsi nello stesso superdominio del file SWF che effettua la chiamata. Per identificare il superdominio, rimuovere la parte più a sinistra dell'URL di un file. Ad esempio, un file SWF all'indirizzo www.adobe.com può scaricare i dati da origini presenti in store.adobe.com poiché entrambi i file si trovano nello stesso superdominio di adobe.com.

Parametri

request:URLRequest — Un oggetto URLRequest che specifica l'URL da scaricare.


Eventi
complete:Event — Inviato dopo che i dati sono stati caricati correttamente.
 
httpStatus:HTTPStatusEvent — Se l'accesso avviene via HTTP e l'ambiente Flash Player corrente supporta l'ottenimento di codici di stato, è possibile ricevere questi eventi in aggiunta all'evento complete o error.
 
ioError:IOErrorEvent — Impossibile completare l'operazione di caricamento.
 
progress:ProgressEvent — Inviato quando vengono ricevuti i dati mentre è in corso l'operazione di scaricamento.
 
securityError:SecurityErrorEvent — Un'operazione di caricamento ha tentato di recuperare dati da un server che si trova al di fuori della funzione di sicurezza sandbox del chiamante. Questo inconveniente può essere risolto utilizzando un file dei criteri sul server.
 
open:Event — Inviato quando inizia un'operazione di caricamento.

Genera
ArgumentError — Gli oggetti URLRequest.requestHeader potrebbero non contenere determinate intestazioni di richiesta HTTP proibite. Per ulteriori informazioni, vedere la descrizione della classe URLRequestHeader.
 
MemoryError — Questo errore può verificarsi per i seguenti motivi: 1) Flash Player non è in grado di convertire il parametro URLRequest.data da UTF8 a MBCS. Questo errore è applicabile se l'oggetto URLRequest passato a load() è impostato per eseguire un'operazione GET e se System.useCodePage è impostato su true. 2) Flash Player non è in grado di allocare memoria per i dati POST. Questo errore è applicabile se l'oggetto URLRequest passato a load è impostato per eseguire un'operazione POST.
 
SecurityError — I file SWF non attendibili locali potrebbero non essere in grado di comunicare con Internet. Questo inconveniente può essere risolto riclassificando il file SWF come file locale con utilizzo in rete o come attendibile.
 
TypeError — Il valore del parametro request o della proprietà URLRequest.url dell'oggetto URLRequest passato è null.

Vedere anche


Esempio

Nel seguente esempio viene caricato un file XML e il contenuto dei primi argomenti dei suoi elementi vengono visualizzati in un campo testo.

Per identificare la posizione del file XML che, in questo esempio, si trova nella stessa directory del file SWF, viene creato un oggetto URLRequest. Il file viene caricato in un blocco try...catch per individuare eventuali errori che potrebbero verificarsi (in questo caso vengono trovati degli errori di tipo SecurityError). Se si verifica un evento IO_ERROR, viene richiamato il metodo errorHandler() il quale scrive un messaggio di errore nel campo di testo xmlTextField. Quando i dati del file XML vengono ricevuti e situati nella proprietà dei dati dell'oggetto loader URLLoader, viene inviato l'evento Event.COMPLETE e viene richiamato il metodo loaderCompleteHandler().

Nel metodo loaderCompleteHandler() viene utilizzato un blocco try...catch in modo da rilevare qualsiasi errore di analisi verificatosi nel corso della conversione dei dati caricati dal file in un oggetto XML. Il metodo readNodes() quindi analizza in modo ricorsivo tutti gli elementi presenti nei nodi del documento XML e allega il campo di testo xmlTextField contenente l'elenco dei primi attributi di tutti gli elementi.

package {
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.xml.*;
    import flash.events.IOErrorEvent;
  
    public class URLLoader_loadExample extends Sprite {
        private var xmlTextField:TextField = new TextField();
        private var externalXML:XML;    
        private var loader:URLLoader;

        public function URLLoader_loadExample() {
            var request:URLRequest = new URLRequest("xmlFile.xml");

            loader = new URLLoader();
            
            try {
                loader.load(request);
            }
            catch (error:SecurityError)
            {
                trace("A SecurityError has occurred.");
            }

             loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);

            xmlTextField.x = 10;
            xmlTextField.y = 10;
            xmlTextField.background = true;
            xmlTextField.autoSize = TextFieldAutoSize.LEFT;

            addChild(xmlTextField);
        }

        private function loaderCompleteHandler(event:Event):void {

                try {
                    externalXML = new XML(loader.data);
                    readNodes(externalXML);    
                } catch (e:TypeError) {
                    trace("Could not parse the XML file.");
                }
        }

        private function readNodes(node:XML):void {

                for each (var element:XML in node.elements()) {
                    xmlTextField.appendText(element.attributes()[0] + "\n");

                    readNodes(element);
                }    
        }

        private function errorHandler(e:IOErrorEvent):void {
            xmlTextField.text = "Had problem loading the XML File.";
        }
    }
}
Descrizione degli eventi
complete Evento
Tipo di oggetto evento: flash.events.Event
Event.type property = flash.events.Event.COMPLETE

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato dopo che tutti i dati ricevuti sono stati decodificati e collocati nella proprietà data dell'oggetto URLLoader. È possibile accedere ai dati ricevuti solo quando questo evento è stato inviato.

Definisce il valore della proprietà type di un oggetto evento complete.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
targetL'oggetto di rete che ha completato il caricamento.

Vedere anche

httpStatus Evento  
Tipo di oggetto evento: flash.events.HTTPStatusEvent
HTTPStatusEvent.type property = flash.events.HTTPStatusEvent.HTTP_STATUS

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato se una chiamata a URLLoader.load() tenta di accedere ai dati via HTTP e l'ambiente Flash Player corrente è in grado di rilevare e restituire il codice di stato della richiesta. (Alcuni ambienti browser potrebbero non essere in grado di fornire queste informazioni). L'evento httpStatus (se presente) viene inviato prima di (e in aggiunta a) qualsiasi evento complete o error.

Definisce il valore della proprietà type di un oggetto evento httpStatus.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
statusIl codice di stato HTTP restituito dal server.
targetL'oggetto di rete che riceve un codice di stato HTTP.

Vedere anche

ioError Evento  
Tipo di oggetto evento: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato se una chiamata a URLLoader.load() produce un errore fatale che termina lo scaricamento.

Definisce il valore della proprietà type di un oggetto evento ioError.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
targetL'oggetto di rete interessato dall'errore di input/output.
textTesto da visualizzare come messaggio di errore.

Vedere anche

open Evento  
Tipo di oggetto evento: flash.events.Event
Event.type property = flash.events.Event.OPEN

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato quando l'operazione di scaricamento inizia in seguito a una chiamata al metodo URLLoader.load().

Definisce il valore della proprietà type di un oggetto evento open.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
targetL'oggetto di rete che ha aperto una connessione.

Vedere anche

progress Evento  
Tipo di oggetto evento: flash.events.ProgressEvent
ProgressEvent.type property = flash.events.ProgressEvent.PROGRESS

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato quando vengono ricevuti i dati mentre è in corso l'operazione di scaricamento.

Con un oggetto URLLoader non è possibile accedere ai dati fino a quando i dati non sono stati completamente ricevuti. Pertanto, l'evento di avanzamento funge solo da notifica dell'avanzamento dello scaricamento. Per accedere ai dati prima di averli completamente scaricati, utilizzare un oggetto URLStream.

Definisce il valore della proprietà type di un oggetto evento progress.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
bytesLoadedIl numero di elementi o di byte caricati nel momento in cui il listener elabora l'evento.
bytesTotalIl numero totale di elementi o byte che vengono caricati se il processo di caricamento viene completato correttamente.
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
targetL'oggetto di rete che riporta l'avanzamento.

Vedere anche

securityError Evento  
Tipo di oggetto evento: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato se una chiamata al metodo URLLoader.load() tenta di caricare dati da un server al di fuori della funzione di sicurezza sandbox.

La costante SecurityErrorEvent.SECURITY_ERROR definisce il valore della proprietà type di un oggetto evento securityError.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
targetL'oggetto di rete che riporta l'errore di sicurezza.
textTesto da visualizzare come messaggio di errore.

Vedere anche

Esempi Come utilizzare gli esempi
URLLoaderExample.as

Nel seguente esempio vengono caricati e visualizzati i dati trovati in un file di testo locale. Inoltre, vengono tracciate le informazioni relative alla gestione dell'evento.

Nota: per provare l'esempio, collocare un file denominato urlLoaderExample.txt nella stessa directory del file SWF. Il file deve contenere solo la riga di testo seguente: answer=42&question=unknown

Il codice di esempio esegue le seguenti operazioni:

  1. La funzione di costruzione crea un'istanza URLLoader di nome loader e un'istanza URLRequest di nome request, che contiene la posizione e il nome del file da caricare.
  2. L'oggetto loader viene passato al metodo configureListeners() che aggiunge i listener per ognuno degli eventi URLLoader supportati.
  3. Quindi, l'oggetto request viene passato a loader.load(), che carica il file di testo.
  4. Quando URLLoader ha terminato il caricamento del file di testo, si attiva l'evento Event.COMPLETE, che a sua volta attiva il metodo completeHandler(). Il metodo completeHandler() crea un oggetto URLVariables dal testo caricato dal file. L'oggetto URLVariables converte le coppie nome/valore con codifica URL in proprietà ActionScript per facilitare la gestione dei dati caricati.

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;

    public class URLLoaderExample extends Sprite {
        public function URLLoaderExample() {
            var loader:URLLoader = new URLLoader();
            configureListeners(loader);

            var request:URLRequest = new URLRequest("urlLoaderExample.txt");
            try {
                loader.load(request);
            } catch (error:Error) {
                trace("Unable to load requested document.");
            }
        }

        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        }

        private function completeHandler(event:Event):void {
            var loader:URLLoader = URLLoader(event.target);
            trace("completeHandler: " + loader.data);
    
            var vars:URLVariables = new URLVariables(loader.data);
            trace("The answer is " + vars.answer);
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
    }
}




 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/flash/net/URLLoader.html