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. |
![]() |