| Paquete | flash.system |
| Clase | public class LoaderContext |
| Herencia | LoaderContext Object |
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
context de los métodos load() y loadBytes() de la clase Loader.
Al cargar archivos SWF con el método Loader.load(), se deben tomar dos decisiones: ¿en qué dominio de seguridad debe colocarse el archivo SWF? y ¿en qué dominio de aplicación dentro de dicho dominio de seguridad? Para más información sobre estas decisiones, consulte las propiedades applicationDomain y securityDomain.
Al cargar un archivo SWF con el método Loader.loadBytes(), debe tomar la misma decisión respecto al dominio de aplicación que con Loader.load(), pero no es necesario especificar ningún dominio de seguridad, ya que Loader.loadBytes() siempre coloca su archivo SWF cargado en el dominio de seguridad del archivo SWF de carga.
Al cargar imágenes (archivos JPEG, GIF o PNG) en lugar de archivos SWF, no es necesario especificar ninguna clase SecurityDomain ni dominio de aplicación, ya que estos conceptos sólo se aplican a los archivos SWF. La única decisión que debe tomar es: ¿es necesario obtener acceso programado a los píxeles de la imagen cargada? Si es así, consulte la propiedad checkPolicyFile.
Véase también
| Propiedad | Definido por | ||
|---|---|---|---|
| applicationDomain : ApplicationDomain = null
Especifica el dominio de aplicación que se utiliza para los métodos Loader.load() o Loader.loadBytes().
| LoaderContext | ||
| checkPolicyFile : Boolean = false
Especifica si Flash Player debe intentar descargar un archivo de política entre dominios desde el servidor del objeto cargado antes de comenzar la carga del propio objeto.
| LoaderContext | ||
![]() | constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
| Object | |
![]() | prototype : Object
[static]
Una referencia al objeto prototipo de una clase u objeto de función.
| Object | |
| securityDomain : SecurityDomain = null
Especifica el dominio de seguridad que se utiliza para una operación Loader.load().
| LoaderContext | ||
| Método | Definido por | ||
|---|---|---|---|
|
LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
Crea un nuevo objeto LoaderContext con la configuración especificada.
| LoaderContext | ||
![]() |
Indica si un objeto tiene definida una propiedad especificada.
| Object | |
![]() |
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
| Object | |
![]() |
Indica si existe la propiedad especificada y si es enumerable.
| Object | |
![]() |
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
| Object | |
![]() |
Devuelve la representación de cadena del objeto especificado.
| Object | |
![]() |
Devuelve el valor simple del objeto especificado.
| Object | |
| applicationDomain | propiedad |
public var applicationDomain:ApplicationDomain = null
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Especifica el dominio de aplicación que se utiliza para los métodos Loader.load() o Loader.loadBytes(). Utilice esta propiedad sólo si carga un archivo SWF creado con ActionScript 3.0 (no una imagen ni un archivo SWF creados en ActionScript 1.0 ó 2.0).
Todos los dominios de seguridad se dividen en uno o varios dominios de aplicación, que están representados por objetos ApplicationDomain. Los dominios de aplicación no se destinan a la seguridad; sirven para administrar la cooperación de las unidades del código ActionScript. Si carga un archivo SWF desde otro dominio y permite su colocación en un dominio de seguridad independiente, no podrá controlar la elección del dominio de aplicación en el que se situará el archivo SWF cargado; si ha especificado una elección de dominio de aplicación, ésta se ignorará. Sin embargo, si carga un archivo SWF en su propio dominio de seguridad (bien porque el archivo procede de su propio dominio o porque se importa en su propio dominio de seguridad), sí podrá controlar la elección del dominio de aplicación para el archivo SWF cargado.
Puede transmitir un dominio de aplicación sólo desde su propio dominio de seguridad en LoaderContext.applicationDomain. Si intenta transmitir un dominio de aplicación desde otro dominio de seguridad, el resultado será un excepción SecurityError.
Existen cuatro opciones en cuanto al tipo de propiedad ApplicationDomain que puede utilizarse:
new ApplicationDomain(ApplicationDomain.currentDomain). Esto permite que el archivo SWF cargado utilice las clases principales directamente, por ejemplo, escribiendo new MyClassDefinedInParent(). Sin embargo, el elemento principal no puede utilizar esta sintaxis; si el elemento principal desea utilizar las clases secundarias, debe llamar a ApplicationDomain.getDefinition() para recuperarlas. La ventaja de esta opción es que, si el elemento secundario define una clase con el mismo nombre que una clase ya definida por el elemento principal, no se producirá ningún error; el elemento secundario simplemente hereda la definición principal de dicha clase y la definición secundaria conflictiva no se utiliza a no ser que el elemento principal o el secundario llame al método ApplicationDomain.getDefinition() para recuperarla.ApplicationDomain.currentDomain. Una vez completada la carga, los elementos principal y secundario pueden utilizar sus respectivas clases directamente. Si el elemento secundario intenta definir una clase con el mismo nombre que la clase ya definida por el elemento principal, se utiliza la clase del elemento principal y se omite la del elemento secundario.new ApplicationDomain(null). Esto separa el cargador y el elemento cargado por completo y les permite definir versiones independientes de clases con el mismo nombre sin riesgo de conflicto ni solapamiento. El único modo de que cada uno pueda ver las clases del otro es llamar al método ApplicationDomain.getDefinition().new ApplicationDomain(ApplicationDomain.currentDomain.parentDomain.parentDomain) carga un archivo SWF en un nuevo elemento secundario del elemento principal del elemento principal del dominio actual.Una vez completada la carga, cada lado (el que se carga y el cargador) puede necesitar su propia propiedad ApplicationDomain (o la propiedad ApplicationDomain del otro lado) para llamar a ApplicationDomain.getDefinition(). Cada lado puede recuperar una referencia de su propio dominio de aplicación mediante ApplicationDomain.currentDomain. El archivo SWF que se carga puede recuperar una referencia a la propiedad ApplicationDomain del archivo SWF cargado mediante Loader.contentLoaderInfo.applicationDomain. Si el archivo SWF cargado sabe cómo se cargó, podrá encontrar el camino hasta el objeto ApplicationDomain del archivo SWF que se carga. Por ejemplo, si el elemento secundario se cargó de forma predeterminada, podrá encontrar el dominio de aplicación del archivo SWF que se carga mediante ApplicationDomain.currentDomain.parentDomain.
Para más información, consulte el apartado "Clase ApplicationDomain" del capítulo "Entorno del sistema del cliente" de Programación con ActionScript 3.0.
Véase también
| checkPolicyFile | propiedad |
public var checkPolicyFile:Boolean = false
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Especifica si Flash Player debe intentar descargar un archivo de política entre dominios desde el servidor del objeto cargado antes de comenzar la carga del propio objeto. Esta marca se aplica al método Loader.load(), pero no a Loader.loadBytes().
Establezca la marca como true al cargar una imagen (archivo JPEG, GIF o PNG) desde el exterior de la llamada al dominio del propio archivo SWF y si necesitará acceder al contenido de dicha imagen desde ActionScript. Algunos ejemplos de acceso al contenido de las imágenes son hacer referencia a la propiedad Loader.content para obtener un objeto Bitmap o llamar al método BitmapData.draw() para obtener una copia de los píxeles de la imagen cargada. Si intenta realizar una de estas operaciones sin especificar checkPolicyFile en el tiempo de carga, es probable que obtenga una excepción SecurityError, ya que no se ha descargado aún el archivo de política necesario.
Al llamar al método Loader.load() con LoaderContext.checkPolicyFile definido como true, Flash Player no inicia la descarga del objeto especificado en URLRequest.url hasta haber descargado correctamente un archivo adecuado de política entre dominios o hasta descubrir que no existe ningún archivo de política correcto. Flash Player primero tiene en cuenta los archivos de política ya descargados. Seguidamente, intenta descargar cualquier archivo de política pendiente especificado en las llamadas al método Security.loadPolicyFile() y, a continuación, intenta descargar un archivo de política desde la ubicación predeterminada que corresponde a URLRequest.url, que es /crossdomain.xml en el mismo servidor que URLRequest.url. En todos los casos, Flash Player necesita que el archivo de política correspondiente exista en el servidor, que ofrezca acceso al objeto en URLRequest.url de acuerdo con la ubicación del archivo de política y que permita que el dominio acceda al archivo SWF que realiza la llamada gracias a una o varias etiquetas <allow-access-from>.
Si define checkPolicyFile como true, Flash Player esperará a la finalización del archivo de política para iniciar la descarga principal que se especifica en el método Loader.load(). Por lo tanto, siempre y cuando exista el archivo de política necesario, la descarga habrá finalizado tan pronto como se reciba cualquiera de los eventos ProgressEvent.PROGRESS o Event.COMPLETE de la propiedad contentLoaderInfo del objeto Loader, y podrá comenzar de forma segura las operaciones que requieren el archivo de política.
Si define checkPolicyFile como true y no se encuentra ningún archivo de política adecuado, no se recibe ningún indicio de error hasta que no se intente la operación que emite una excepción SecurityError. Sin embargo, cuando el objeto LoaderInfo distribuye un evento ProgressEvent.PROGRESS o Event.COMPLETE, se puede comprobar si se encontró un archivo de política adecuado verificando el valor de la propiedad LoaderInfo.childAllowsParent.
Si no necesita un acceso a nivel de píxeles en la imagen que va a cargar, no debe definir la propiedad checkPolicyFile como true. No es muy adecuado buscar un archivo de política en este caso, ya que podría retrasar el inicio de la descarga y consumir ancho de banda de red de forma innecesaria.
Intente también evitar el establecimiento de checkPolicyFile como true si utiliza el método Loader.load() para descargar un archivo SWF. Esto se debe a que los permisos de SWF a SWF no están controlados por archivos de política, sino por el método Security.allowDomain() y, por tanto, checkPolicyFile no surte ningún efecto al cargar un archivo SWF. No es muy adecuado buscar un archivo de política en este caso, ya que podría retrasar la descarga del archivo SWF y consumir ancho de banda de red de forma innecesaria. (Flash Player no puede saber si la descarga principal será un archivo SWF o una imagen, ya que la descarga del archivo de política se produce antes de la descarga principal.)
Debe tener cuidado con checkPolicyFile si descarga un objeto desde una URL que utilice redirección HTTP en el lado del servidor. Flash Player siempre intenta recuperar archivos de política correspondientes a la URL inicial especificada en URLRequest.url. Si el objeto final procede de una URL distinta por la redirección HTTP, puede que los archivos de política descargados inicialmente no se puedan aplicar a la URL final del objeto, que es la URL determinante en las decisiones de seguridad. Si se produce esta situación, puede examinar el valor de LoaderInfo.url tras recibir un evento ProgressEvent.PROGRESS o Event.COMPLETE, que le indicará la URL final del objeto. A continuación, llame al método Security.loadPolicyFile() con una URL de archivo de política basada en la URL final del objeto. A continuación, sondee el valor de LoaderInfo.childAllowsParent hasta que sea true.
Véase también
| securityDomain | propiedad |
public var securityDomain:SecurityDomain = null
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Especifica el dominio de seguridad que se utiliza para una operación Loader.load(). Utilice esta propiedad sólo si carga un archivo SWF (no una imagen).
La elección del dominio de seguridad tiene relevancia únicamente si se carga un archivo SWF que pueda proceder de otro dominio distinto (un servidor diferente) del archivo SWF que se carga. Al cargar un archivo SWF desde su propio dominio, siempre se coloca en el dominio de seguridad. Sin embargo, al cargar un archivo SWF desde un dominio distinto, existen dos opciones. Puede permitir que el archivo SWF cargado se coloque en su dominio de seguridad "natural", que no coincide con el del archivo SWF que se carga. Esta opción es la predeterminada. La otra opción consiste en especificar que desea colocar el archivo SWF cargado en el mismo dominio de seguridad que el archivo SWF que se carga. Para ello, establezca myLoaderContext.securityDomain para que sea igual que SecurityDomain.currentDomain. Este proceso recibe el nombre de carga de importación y equivale, en lo que respecta a la seguridad, a copiar el archivo SWF cargado en su propio servidor y cargarlo desde allí. Para que la carga de importación sea correcta, el servidor del archivo SWF cargado debe disponer de un archivo de política apto para el dominio del archivo SWF que se carga.
Puede transmitir su propio dominio de seguridad sólo en LoaderContext.securityDomain. Si intenta transmitir cualquier otro dominio de seguridad, el resultado será una excepción SecurityError.
Para más información, consulte el capítulo "Seguridad" de Programación con ActionScript 3.0.
Véase también
| LoaderContext | () | constructor |
public function LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Crea un nuevo objeto LoaderContext con la configuración especificada. Para obtener información detallada sobre esta configuración, consulte las descripciones de las propiedades de esta clase.
ParámetroscheckPolicyFile:Boolean (default = false) — Especifica si Flash Player debe comprobar la existencia de un archivo de política entre dominios antes de cargar el objeto.
|
|
applicationDomain:ApplicationDomain (default = null) — Especifica el objeto ApplicationDomain que se utiliza para un objeto Loader.
|
|
securityDomain:SecurityDomain (default = null) — Especifica el objeto SecurityDomain que se utiliza para un objeto Loader.
|
Véase también
Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios
Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/system/LoaderContext.html