| Pacchetto | flash.system |
| Classe | public class LoaderContext |
| Ereditarietà | LoaderContext Object |
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
context nei metodi load() e loadBytes() della classe Loader.
Quando si caricano i file SWF mediante il metodo Loader.load(), è necessario decidere in quale dominio di sicurezza e in quale dominio applicazione all'interno del dominio di sicurezza si desidera posizionarli. Per ulteriori informazioni su queste opzioni, vedere le proprietà applicationDomain e securityDomain.
Quando si carica un file SWF mediante il metodo Loader.loadBytes(), è necessario scegliere il dominio applicazione come nel caso di Loader.load(), mentre non è necessario specificare un dominio di sicurezza, in quanto Loader.loadBytes() posiziona sempre il file SWF caricato nel dominio di sicurezza del file che esegue il caricamento.
Quando si caricano immagini invece che file SWF (JPEG, GIF o PNG), non è necessario specificare un SecurityDomain o un dominio applicazione, in quanto questi concetti hanno un significato solo per i file SWF. È sufficiente decidere se è necessario disporre dell'accesso programmatico ai pixel dell'immagine caricata. In questo caso, vedere la proprietà checkPolicyFile.
Vedere anche
| Proprietà | Definito da | ||
|---|---|---|---|
| applicationDomain: ApplicationDomain = null
Indica il dominio applicazione da usare per il metodo Loader.load() o Loader.loadBytes().
| LoaderContext | ||
| checkPolicyFile: Boolean = false
Indica se Flash Player deve cercare di scaricare un file di criteri dei domini dal server dell'oggetto caricato prima di avviare il caricamento dell'oggetto stesso.
| LoaderContext | ||
![]() | constructor: Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
| Object | |
![]() | prototype: Object
[statico]
Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
| Object | |
| securityDomain: SecurityDomain = null
Indica il dominio applicazione da usare per un'operazione Loader.load().
| LoaderContext | ||
| Metodo | Definito da | ||
|---|---|---|---|
|
LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
Crea un nuovo oggetto LoaderContext con le impostazioni specificate.
| LoaderContext | ||
![]() |
Indica se per un oggetto è definita una proprietà specifica.
| Object | |
![]() |
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
| Object | |
![]() |
Indica se la proprietà specificata esiste ed è enumerabile.
| Object | |
![]() |
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
| Object | |
![]() |
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
| Object | |
![]() |
Restituisce il valore di base dell'oggetto specificato.
| Object | |
| applicationDomain | proprietà |
public var applicationDomain:ApplicationDomain = null
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Indica il dominio applicazione da usare per il metodo Loader.load() o il metodo Loader.loadBytes(). Utilizzare questa proprietà solo per il caricamento di un file SWF scritto in ActionScript 3.0 (non un'immagine o un file SWF scritto in ActionScript 1.0 o ActionScript 2.0).
Tutti i domini di sicurezza sono divisi in uno o più domini applicazioni, rappresentati da oggetti ApplicationDomain. I domini applicazioni non hanno scopi di sicurezza, ma hanno il compito di gestire le unità cooperanti di codice ActionScript. Se si sta caricando un file SWF da un altro dominio, e si consente il suo posizionamento in un dominio di sicurezza separato, non è possibile controllare la scelta del dominio applicazione nel quale il file SWF viene posto; se si è scelto un dominio applicazione, verrà ignorato. Tuttavia, se si sta caricando un file SWF nel proprio dominio di sicurezza, perché il file proviene dal proprio dominio oppure perché lo si sta importando nel proprio dominio di sicurezza, è possibile controllare la scelta del dominio applicazione per il file SWF caricato.
È possibile passare un dominio applicazione in LoaderContext.applicationDomain solo se proviene dal proprio dominio di sicurezza. Se si tenta di passare un dominio applicazione da qualsiasi altro dominio di sicurezza, viene generata un'eccezione SecurityError.
Sono disponibili quattro opzioni relative al tipo di proprietà ApplicationDomain da utilizzare:
new ApplicationDomain(ApplicationDomain.currentDomain). In questo modo, il file SWF caricato può utilizzare direttamente le classi dell'elemento principale, ad esempio scrivendo new MyClassDefinedInParent(). L'elemento principale, tuttavia, non può utilizzare questa sintassi; se l'elemento principale desidera utilizzare le classi dell'elemento secondario, deve eseguire una chiamata a ApplicationDomain.getDefinition() per recuperarle. Il vantaggio di questa scelta consiste nel fatto che se l'elemento secondario definisce una classe con lo stesso nome di un'altra già definita dall'elemento principale, non viene generato nessun errore; l'elemento secondario eredita semplicemente la definizione di quella classe dall'elemento principale, e le definizione in conflitto dell'elemento secondario non viene utilizzata a meno che l'elemento secondario o quello principale non chiamino il metodo ApplicationDomain.getDefinition() per recuperarla.ApplicationDomain.currentDomain. Al termine del caricamento, l'elemento principale e quello secondario possono utilizzare direttamente le reciproche classi. Se l'elemento secondario prova a definire una classe con lo stesso nome di una classe già definita, nell’elemento superiore, verrà utilizzata la classe dell’elemento principale e quella del secondario verrà ignorata.new ApplicationDomain(null). In questo modo l'elemento caricante e l'elemento caricato vengono separati completamente, il che consente loro di definire versioni diverse di classi con lo stesso nome senza il pericolo di conflitti o oscuramenti. L'unico modo perché una parte possa vedere le classi dell'altra è mediante una chiamata al metodo ApplicationDomain.getDefinition().new ApplicationDomain(ApplicationDomain.currentDomain.parentDomain.parentDomain) carica un file SWF in un nuovo elemento secondario dell'elemento principale dell'elemento principale del dominio corrente.Quando un caricamento viene completato, una delle parti (caricante o caricato) potrebbe dover trovare il proprio ApplicationDomain, oppure l'ApplicationDomain dell'altra parte, allo scopo di eseguire una chiamata a ApplicationDomain.getDefinition(). Entrambe le parti possono recuperare un riferimento al proprio dominio applicazione utilizzando ApplicationDomain.currentDomain. Il file SWF che esegue il caricamento può recuperare un riferimento all'ApplicationDomain del file SWF caricato, mediante Loader.contentLoaderInfo.applicationDomain. Se il file SWF caricato conosce la modalità con cui è stato caricato, può trovare il modo per raggiungere l'oggetto ApplicationDomain del file SWF che ha eseguito il caricamento. Ad esempio, se l'elemento secondario è stato caricato nel modo predefinito, può trovare il dominio applicazione del file SWF che ha eseguito il caricamento, utilizzando ApplicationDomain.currentDomain.parentDomain.
Per ulteriori informazioni, consultare la sezione "Classe ApplicationDomain" del capitolo "Ambiente del sistema client" di Programmazione in ActionScript 3.0.
Vedere anche
| checkPolicyFile | proprietà |
public var checkPolicyFile:Boolean = false
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Indica se Flash Player deve cercare di scaricare un file di criteri dei domini dal server dell'oggetto caricato prima di avviare il caricamento dell'oggetto stesso. Questo flag si applica al metodo Loader.load() ma non al metodo Loader.loadBytes().
Impostare questo flag su true quando si carica un'immagine (JPEG, GIF o PNG) da un punto al di fuori del dominio del file SWF che esegue la chiamata e si prevede che sarà necessario disporre dell'accesso al contenuto di quell'immagine da ActionScript. Ad esempio, l'accesso al contenuto dell'immagine consente di fare riferimento alla proprietà Loader.content per ottenere un oggetto Bitmap e di chiamare il metodo BitmapData.draw() per ottenere una copia dei pixel dell'immagine caricata. Se si cerca di eseguire una di queste operazioni senza avere specificato checkPolicyFile al momento del caricamento, è possibile che venga generata un'eccezione SecurityError in quanto il file di criteri necessario non è ancora stato scaricato.
Quando si esegue una chiamata al metodo Loader.load() con LoaderContext.checkPolicyFile impostato su true, Flash Player non inizia a scaricare l'oggetto specificato in URLRequest.url finché non ha scaricato un file di criteri dei domini rilevante oppure finché non ha stabilito che tale file non esiste. Flash Player considera innanzitutto i file di criteri che sono già stati scaricati, quindi tenta di scaricare gli eventuali file di criteri in attesa specificati nelle chiamate al metodo Security.loadPolicyFile(), infine tenta di scaricare un file di criteri dalla posizione predefinita corrispondente a URLRequest.url, che è /crossdomain.xml sullo stesso server di URLRequest.url. In tutti i casi, è necessario che il file di criteri dato sia presente sul server di Flash Player, che consenta l'accesso all'oggetto su URLRequest.url in virtù della posizione del file di criteri e che consenta l'accesso da parte del dominio del file SWF che esegue le chiamata mediante uno o più tag <allow-access-from>.
Se si imposta checkPolicyFile su true, Flash Player attende il completamento del file di criteri prima di iniziare lo scaricamento principale specificato nel metodo Loader.load(). Pertanto, a condizione che il file di criteri richiesto esista, non appena si ricevono gli eventi ProgressEvent.PROGRESS o Event.COMPLETE dalla proprietà contentLoaderInfo dell'oggetto Loader, il caricamento del file è completo ed è possibile avviare tutte le operazioni che richiedono la sua presenza.
Se si imposta checkPolicyFile su true e non viene trovato alcun file dei criteri rilevante, non si riceve alcun messaggio di errore finché non si tenta di eseguire un'operazione che genera un'eccezione SecurityError. Tuttavia, dopo che l'oggetto LoaderInfo invia un evento ProgressEvent.PROGRESS o Event.COMPLETE, è possibile verificare se è stato trovato un file dei criteri rilevante controllando il valore della proprietà LoaderInfo.childAllowsParent.
Se non è necessario disporre dell'accesso ai pixel dell'immagine che si sta caricando, non impostare la proprietà checkPolicyFile su true. Verificare la presenza di un file dei criteri in questo caso è controproducente in quanto potrebbe ritardare l'inizio dello scaricamento e consumare inutilmente l'ampiezza di banda di rete.
Inoltre, si consiglia di non impostare checkPolicyFile su true se si utilizza il metodo Loader.load() per scaricare un file SWF, in quanto le autorizzazioni da SWF a SWF non sono controllate dai file dei criteri ma dal metodo Security.allowDomain(), pertanto, checkPolicyFile non ha alcun effetto quando si carica un file SWF. Verificare la presenza di un file dei criteri in questo caso è controproducente in quanto potrebbe ritardare lo scaricamento del file SWF e consumare inutilmente l'ampiezza di banda di rete. (Flash Player non è in grado di capire se lo scaricamento principale interesserà un file SWF o un'immagine, in quanto lo scaricamento del file dei criteri avviene prima dello scaricamento principale.)
Fare attenzione a checkPolicyFile se si sta scaricando un oggetto da un URL che potrebbe utilizzare reindirizzamenti HTTP sul lato server. Flash Player cerca sempre di recuperare i file dei criteri che corrispondono all'URL iniziale specificato in URLRequest.url. Se l'oggetto finale proviene da un URL diverso a seguito di reindirizzamenti HTTP, i file dei criteri inizialmente scaricati potrebbero non essere applicabili all'URL finale dell'oggetto, vale a dire l'URL determinante in termini di decisioni sulla sicurezza. Se ci si trova in questa situazione, è possibile esaminare il valore di LoaderInfo.url dopo che si è ricevuto un evento ProgressEvent.PROGRESS o Event.COMPLETE, che specificano l'URL finale dell'oggetto. Quindi, chiamare il metodo Security.loadPolicyFile() utilizzando l'URL di un file dei criteri basato sull'URL finale dell'oggetto. A quel punto, eseguire il polling del valore di LoaderInfo.childAllowsParent finché non diventa true.
Vedere anche
| securityDomain | proprietà |
public var securityDomain:SecurityDomain = null
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Indica il dominio applicazione da usare per una operazione Loader.load(). Utilizzare questa proprietà solo per caricare un file SWF (non un'immagine).
La scelta del dominio di sicurezza ha senso soltanto se si sta caricando un file SWF che potrebbe provenire da un dominio diverso (da un altro server) rispetto al file SWF che esegue il caricamento. Quando si carica un file SWF dal proprio dominio, viene sempre posto nel proprio dominio di sicurezza. Al contrario, quando si carica un file SWF da un dominio diverso, è possibile procedere in due modi: lasciare che il file SWF caricato venga posto nel proprio dominio di sicurezza "naturale", diverso da quello del file SWF che esegue il caricamento (valore predefinito), oppure, specificare che si desidera posizionare il file SWF caricato nello stesso dominio di sicurezza del file SWF che esegue il caricamento, impostandomyLoaderContext.securityDomain in modo che sia uguale a SecurityDomain.currentDomain. Questa operazione è denominata caricamento mediante importazione e, ai fini della sicurezza, equivale a copiare il file SWF caricato sul proprio server e, quindi, a caricarlo da lì. Per fare in modo che il caricamento mediante importazione riesca, il server del file SWF caricato deve disporre di un file dei criteri che ritenga affidabile il dominio del file SWF che esegue il caricamento.
È possibile passare il proprio dominio di sicurezza solo in LoaderContext.securityDomain. Se si tenta di passare un qualsiasi altro dominio di sicurezza, viene generata un'eccezione SecurityError.
Per ulteriori informazioni, consultare il capitolo "Sicurezza" in Programmazione in ActionScript 3.0.
Vedere anche
| LoaderContext | () | Funzione di costruzione |
public function LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Crea un nuovo oggetto LoaderContext con le impostazioni specificate. Per informazioni più complete su queste impostazioni, vedere le descrizioni delle proprietà di questa classe.
ParametricheckPolicyFile:Boolean (default = false) — Specifica se Flash Player deve verificare l'esistenza di un file di criteri dei domini prima di caricare l'oggetto.
|
|
applicationDomain:ApplicationDomain (default = null) — Specifica l'oggetto ApplicationDomain da utilizzare per un oggetto Loader.
|
|
securityDomain:SecurityDomain (default = null) — Specifica l'oggetto SecurityDomain da utilizzare per un oggetto Loader.
|
Vedere anche
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/system/LoaderContext.html