Caricamento di contenuto

Un file SWF può caricare i seguenti tipi di contenuto:

Sezioni

Caricamento di file SWF e di immagini mediante il tag <img> in un campo di testo
Caricamento di audio e video
Caricamento di file SWF e di immagini mediante il tag <img> in un campo di testo
Contenuto distribuito mediante server RTMP

Caricamento di file SWF e di immagine

Utilizzare la classe Loader per caricare file SWF e di immagine (file JPG, GIF o PNG). Tutti i file SWF, eccetto quelli che si trovano nella sandbox locale con file system, possono caricare file SWF e di immagine di qualsiasi dominio di rete. Solo i file SWF contenuti nelle sandbox locali possono caricare file SWF e di immagine del file system locale. Tuttavia, i file nella sandbox locale con rete possono caricare unicamente file SWF locali che si trovano nella sandbox locale affidabile o locale con rete. I file SWF nella sandbox locale con rete possono caricare contenuto locale diverso da file SWF (quali immagini), tuttavia, essi non possono accedere ai dati del contenuto caricato.

Quando si carica un file SWF da un'origine non affidabile (ad esempio un dominio diverso da quello del file SWF principale dell'oggetto Loader), può essere opportuno definire una maschera per l'oggetto Loader, in modo da impedire che il contenuto caricato (che è un elemento secondario dell'oggetto Loader) possa essere disegnato in parti dello stage al di fuori della maschera, come nel codice seguente:

import flash.display.*;
import flash.net.URLRequest;
var rect:Shape = new Shape();
rect.graphics.beginFill(0xFFFFFF);
rect.graphics.drawRect(0, 0, 100, 100);
addChild(rect);
var ldr:Loader = new Loader();
ldr.mask = rect;
var url:String = "http://www.unknown.example.com/content.swf";
var urlReq:URLRequest = new URLRequest(url);
ldr.load(urlReq);
addChild(ldr);

Quando si chiama il metodo load() dell'oggetto Loader, è possibile specificare un parametro context, che è un oggetto LoaderContext. La classe LoaderContext include tre proprietà che consentono di definire il contesto di utilizzo del contenuto caricato:

Per informazioni dettagliate, vedere Impostazione del contesto di caricamento.

Un'importante proprietà dell'oggetto Loader è la proprietà contentLoaderInfo, che è un oggetto LoaderInfo. A differenza della maggior parte degli oggetti, l'oggetto LoaderInfo viene condiviso tra il file SWF che carica e il contenuto caricato ed è sempre accessibile da entrambe le parti. Se il contenuto caricato è un file SWF, esso può accedere all'oggetto LoaderInfo mediante la proprietà DisplayObject.loaderInfo. Gli oggetti LoaderInfo includono informazioni quali stato di avanzamento del caricamento, URL di caricante e caricato, relazione di affidabilità tra caricante e caricato e altre informazioni. Per ulteriori informazioni, vedere Monitoraggio dello stato di avanzamento del caricamento.

Caricamento di audio e video

Tutti i file SWF, a eccezione di quelli nella sandbox locale con file system, possono caricare audio e video da origini di rete mediante i metodi Sound.load(), NetConnection.connect() e NetStream.play().

Solo i file SWF locali sono in grado di caricare file multimediali dal file system locale. E solo i file SWF nella sandbox locale con file system o nella sandbox locale affidabile possono accedere ai dati contenuti in tali file caricati.

Esistono altre restrizioni relative all'accesso ai dati dei file multimediali caricati. Per informazioni dettagliate, vedere Accesso a file multimediali caricati come dati.

Caricamento di file SWF e di immagini mediante il tag <img> in un campo di testo

È possibile caricare file SWF e bitmap in campi di testo mediante il tag <img>, come illustrato dal codice seguente:

<img src = 'filename.jpg' id = 'instanceName' >

Per accedere al contenuto caricato in questo modo, utilizzare il metodo getImageReference() dell'istanza TextField, come nel codice seguente:

var loadedObject:DisplayObject = myTextField.getImageReference('instanceName');

Si noti, tuttavia, che i file SWF e le immagini caricate in questo modo vengono inseriti nella sandbox corrispondente alla rispettiva origine.

Quando si carica un file di immagine utilizzando un tag <img> in un campo di testo, l'accesso ai dati di tale file può essere autorizzato da un file di criteri dei domini. Per verificare la presenza di un file di criteri, aggiungere l'attributo checkPolicyFile al tag <img>, come nel codice seguente:

<img src = 'filename.jpg' checkPolicyFile = 'true' id = 'instanceName' >

Quando si carica un file SWF mediante un tag <img> in un campo di testo, è possibile consentire l'accesso ai dati di tale file SWF chiamando il metodo Security.allowDomain().

Quando si utilizza un tag <img> in un campo di testo per caricare un file esterno (anziché utilizzare una classe Bitmap incorporata al file SWF), viene automaticamente creato un oggetto Loader come elemento secondario dell'oggetto TextField e il file esterno viene caricato nel Loader come se fosse stato caricato in ActionScript mediante l'oggetto Loader. In questo caso, il metodo getImageReference() restituisce l'oggetto Loader creato automaticamente. Non è necessaria alcuna verifica di sicurezza per accedere a questo Loader poiché si trova nella stessa sandbox di sicurezza del codice chiamante.

Tuttavia, quando si fa riferimento alla proprietà content dell'oggetto Loader per accedere ai contenuti multimediali caricati, le regole di sicurezza vengono applicate. Se il contenuto è un'immagine, è necessario implementare un file di criteri dei domini, mentre se il contenuto è un file SWF, è necessario che il codice del file chiami il metodo allowDomain().

Contenuto distribuito mediante server RTMP

Flash Media Server impiega il protocollo RTMP (Real-Time Media Protocol) per gestire dati, audio e video. I file SWF caricano questi file multimediali mediante il metodo connect() della classe NetConnection, trasmettendo un URL RTMP come parametro. Flash Media Server è in grado di limitare le connessioni e impedire lo scaricamento di contenuto, in base al dominio del file richiedente. Per ulteriori informazioni, consultare la documentazione di Flash Media Server.

Per i file multimediali caricati da fonti RTMP, non è possibile utilizzare i metodi BitmapData.draw() e SoundMixer.computeSpectrum() per estrarre dati audio e di immagine in fase di runtime.


Flash CS3

 

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/main/00000353.html