Carregamento dinâmico do conteúdo da exibiçãoFlash Player 9 e posterior, Adobe AIR 1.0 e posterior Você pode carregar qualquer uma dos seguintes ativos de exibição externos em um aplicativo ActionScript 3.0:
Carregue esses ativos usando a classe Loader. Carregamento de objetos de exibiçãoOs objetos Loader são usados para carregar arquivos SWF e de imagem em um aplicativo. A classe Loader é uma subclasse de DisplayObjectContainer. Um objeto Loader pode conter apenas um objeto de exibição filho na lista de exibição, o objeto que representa o arquivo SWF ou de imagem carregado. Quando você adiciona um objeto Loader à lista de exibição, como no código a seguir, também pode adicionar o objeto filho carregado à lista de exibição após o carregamento: var pictLdr:Loader = new Loader(); var pictURL:String = "banana.jpg" var pictURLReq:URLRequest = new URLRequest(pictURL); pictLdr.load(pictURLReq); this.addChild(pictLdr); Assim que o arquivo SWF ou imagem é carregado, você pode mover o objeto de exibição carregado para outro contêiner, como o objeto container DisplayObjectContainer neste exemplo: 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);
}
Monitoramento do progresso do carregamentoAssim que o arquivo começa a ser carregado, um objeto LoaderInfo é criado. Um objeto LoaderInfo fornece informações como o progresso do carregamento, os URLs do carregador e do conteúdo carregado, o número de bytes totais para a mídia e a altura e largura nominais da mídia. O objeto LoaderInfo também envia eventos para o monitoramento do progresso do carregamento. O diagrama a seguir mostra os diferentes usos do objeto LoaderInfo - para a ocorrência da classe principal do arquivo SWF, para um objeto Loader e para um objeto carregado por Loader: O objeto LoaderInfo pode ser acessado como uma propriedade do objeto Loader e do objeto de exibição carregado. Assim que o carregamento começa, o objeto LoaderInfo pode ser acessado por meio da propriedade contentLoaderInfo do objeto Loader. Quando o carregamento do objeto de exibição termina, o objeto LoaderInfo também pode ser acessado como uma propriedade do objeto de exibição carregado pela propriedade loaderInfo. A propriedade loaderInfo do objeto de exibição carregado refere-se ao mesmo objeto LoaderInfo da propriedade contentLoaderInfo do objeto Loader. Em outras palavras, um objeto LoaderInfo é compartilhado entre um objeto carregado e o objeto Loader que o carregou (entre o carregador e o carregado). Para acessar as propriedades do conteúdo carregado, adicione um ouvinte de eventos ao objeto LoaderInfo, assim como no código a seguir: 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 obter mais informações, consulte Manipulação de eventos. Especificação do contexto do carregamentoQuando você carrega um arquivo externo no Flash Player ou no AIR com o método load() ou loadBytes() da classe Loader, pode especificar, se desejar, um parâmetro context. Este parâmetros é um objeto LoaderContext. A classe LoaderContext inclui três propriedades que permitem definir o contexto de como o conteúdo carregado pode ser usado:
Veja um exemplo de busca de um arquivo de política ao carregar um bitmap de outro domínio: 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);
Veja um exemplo de busca de um arquivo de política ao carregar um SWF de outro domínio para colocar o arquivo na mesma caixa de proteção do objeto Loader. Além disso, o código adiciona as classes do arquivo SWF carregado ao mesmo domínio de aplicativo do 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 obter mais informações, consulte a classe LoaderContext em Referência do ActionScript 3.0 para a plataforma Adobe Flash. |
|