Carga dinámica de contenido de visualizaciónFlash Player 9 y posterior, Adobe AIR 1.0 y posterior En una aplicación de ActionScript 3.0, se puede cargar cualquiera de los siguientes activos de visualización externos:
Estos activos se cargan mediante la clase Loader. Carga de objetos de visualizaciónLos objetos Loader se usan para cargar archivos SWF y archivos de gráficos en una aplicación. La clase Loader es una subclase de la clase DisplayObjectContainer. Un objeto Loader sólo puede contener un objeto de visualización secundario en su lista de visualización: el objeto de visualización que representa el archivo SWF o archivo de gráficos que se carga. Cuando se añade un objeto Loader a la lista de visualización, como en el código siguiente, también se añade a la lista de visualización el objeto de visualización secundario cargado, una vez que se ha cargado: var pictLdr:Loader = new Loader(); var pictURL:String = "banana.jpg" var pictURLReq:URLRequest = new URLRequest(pictURL); pictLdr.load(pictURLReq); this.addChild(pictLdr); Cuando se carga el archivo SWF o la imagen, se puede mover el objeto de visualización cargado a otro contenedor de objeto de visualización, como el objeto DisplayObjectContainer container que se muestra en este ejemplo: import flash.display.*;
import flash.net.URLRequest;
import flash.events.Event;
var container:Sprite = new Sprite();
addChild(container);
var pictLdr:Loader = new Loader();
var pictURL:String = "banana.jpg"
var pictURLReq:URLRequest = new URLRequest(pictURL);
pictLdr.load(pictURLReq);
pictLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);
function imgLoaded(event:Event):void
{
container.addChild(pictLdr.content);
}
Supervisión del progreso de cargaCuando se empieza a cargar el archivo, se crea un objeto LoaderInfo. Un objeto LoaderInfo proporciona información tal como el progreso de carga, los URL del cargador y el contenido cargado, el número total de bytes del medio, y la anchura y la altura nominal del medio. Un objeto LoaderInfo también distribuye eventos para supervisar el progreso de la carga. El siguiente diagrama muestra los diferentes usos del objeto LoaderInfo para la instancia de la clase principal del archivo SWF, para un objeto Loader y para un objeto cargado por el objeto Loader: Se puede acceder al objeto LoaderInfo como una propiedad tanto del objeto Loader como del objeto de visualización cargado. En cuanto comienza la carga, se puede acceder al objeto LoaderInfo a través de la propiedad contentLoaderInfo del objeto Loader. Cuando finaliza la carga del objeto de visualización, también es posible acceder al objeto LoaderInfo como una propiedad del objeto de visualización cargado, a través de la propiedad loaderInfo del objeto de visualización. La propiedad loaderInfo del objeto de visualización hace referencia al mismo objeto LoaderInfo al que se refiere la propiedad contentLoaderInfo del objeto Loader. Dicho de otro modo, un objeto LoaderInfo se comparte entre un objeto cargado y el objeto Loader que lo ha cargado (es decir, entre el contenido cargado y el cargador). Para acceder a las propiedades del contenido cargado, es necesario añadir un detector de eventos al objeto LoaderInfo, como se muestra en el siguiente código: import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
var ldr:Loader = new Loader();
var urlReq:URLRequest = new URLRequest("Circle.swf");
ldr.load(urlReq);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
addChild(ldr);
function loaded(event:Event):void
{
var content:Sprite = event.target.content;
content.scaleX = 2;
}
Para obtener más información, consulte Gestión de eventos. Especificación del contexto de cargaCuando se carga un archivo externo en Flash Player o AIR con el método load() o loadBytes(), se puede especificar opcionalmente un parámetro context. Este parámetro es un objeto LoaderContext. La clase LoaderContext incluye tres propiedades que permiten definir el contexto de uso del contenido cargado:
A continuación se muestra un ejemplo de comprobación de un archivo de política durante la carga de un mapa de bits de otro dominio: var context:LoaderContext = new LoaderContext();
context.checkPolicyFile = true;
var urlReq:URLRequest = new URLRequest("http://www.[your_domain_here].com/photo11.jpg");
var ldr:Loader = new Loader();
ldr.load(urlReq, context);
A continuación se muestra un ejemplo de comprobación de un archivo de política durante la carga de un archivo SWF de otro dominio, con el fin de colocar el archivo en el mismo entorno limitado de seguridad que el objeto Loader. Además, el código añade las clases del archivo SWF cargado al mismo dominio de aplicación que el del objeto Loader: var context:LoaderContext = new LoaderContext();
context.securityDomain = SecurityDomain.currentDomain;
context.applicationDomain = ApplicationDomain.currentDomain;
var urlReq:URLRequest = new URLRequest("http://www.[your_domain_here].com/library.swf");
var ldr:Loader = new Loader();
ldr.load(urlReq, context);
Para obtener más información, consulte la clase LoaderContext en ActionScript 3.0 Reference for the Adobe Flash Platform. |
|