Pacote | flash.display |
Classe | public class Loader |
Herança | Loader DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
Subclasses | AVLoader, FlexLoader |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
para iniciar o carregamento. O objeto de exibição carregado é adicionado como filho do objeto Loader.
Use a classe URLLoader para carregar texto ou dados binários.
A classe Loader substitui os métodos a seguir que ela herda, uma vez que um objeto Loader pode ter apenas um objeto de exibição-filho - o objeto de exibição que ele carrega. Chamar os métodos a seguir lança uma exceção: Chamar os métodos a seguir lança uma exceção: addChild()
, addChildAt()
, removeChild()
, removeChildAt()
e setChildIndex()
. Para remover um objeto de exibição carregado, é necessário remover o objeto Loader da matriz de filhos do DisplayObjectContainer-pai.
Observações para o iOS
Em aplicativos AIR no iOS, você somente pode carregar um arquivo SWF que contenha o ActionScript do pacote do aplicativo. Esta restrição inclui qualquer ActionScript, como os ativos com nomes de classes exportados para o ActionScript. Para carregar qualquer arquivo SWF, é preciso carregar o SWF utilizando o mesmo domínio do aplicativo como o SWF pai, como é mostrado no exemplo a seguir:
var loader:Loader = new Loader(); var url:URLRequest = new URLRequest("swfs/SecondarySwf.swf"); var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null); loader.load(url, loaderContext);
Além disso, não é possível carregar no iOS um arquivo SWF que contenha um código ActionScript ByteCode (ABC) e, então, descarregá-lo e carregá-lo novamente. Se você tentar fazer isso, o runtime lançará o erro 3764.
Em versões anteriores ao AIR 3.6, somente os arquivos SWF que não contenham o código de bytes do ActionScript podem ser carregados, independentemente de terem sido carregados de um pacote de aplicativo ou por uma rede. Como alternativa para usar um arquivo SWF externo com o ActionScript, crie uma biblioteca SWC e vincule-a ao SWF principal.
O AIR 3.7 e superior suporta o carregamento de SWFs secundários hospedados externamente. A descrição detalhada sobre esse recurso pode ser encontrada aqui.
Estas restrições do iOS não se aplicam quando um aplicativo é executado no simulador do iOS (ipa-test-interpreter-simulator ou ipa-debug-interpreter-simulator) ou no modo intérprete (ipa-test-interpreter ou ipa-debug-interpreter.)
Segurança do Loader
Quando usar a classe Loader, considere o modelo de segurança do Flash Player e do Adobe AIR:
- É possível carregar conteúdo de qualquer origem acessível.
- O carregamento não será permitido se o arquivo SWF de chamada estiver em uma caixa de proteção de rede e o arquivo a ser carregado for local.
- Se o conteúdo carregado for um arquivo SWF gravado com o ActionScript 3.0, ele não poderá ser programado como script cruzado por um arquivo SWF em outra área de segurança, a não ser que a disposição de scripts cruzados tenha sido aprovada por meio de uma chamada ao método
System.allowDomain()
ouSystem.allowInsecureDomain()
no arquivo de conteúdo carregado. - Se o conteúdo carregado for um arquivo SWF AVM1 (gravado com o ActionScript 1.0 ou 2.0), ele não poderá ser programado como script cruzado por um arquivo SWF AVM2 (gravado com o ActionScript 3.0). Entretanto, você pode estabelecer comunicação entre os dois arquivos SWF usando a classe LocalConnection.
- Se o conteúdo carregado for uma imagem, seus dados não poderão ser acessados por um arquivo SWF fora da área de segurança, a não ser que o domínio desse arquivo SWF esteja incluído em um arquivo de diretivas de URL no domínio de origem da imagem.
- Clipes de filme na caixa de proteção local com sistema de arquivos não podem programar scripts de clipes de filme na caixa de proteção local com rede e vice-versa.
- Não é possível conectar-se às portas normalmente reservadas. Para ver uma lista completa de portas bloqueadas, consulte "Restrição de APIs de rede" no Guia do Desenvolvedor do ActionScript 3.0.
Contudo, no AIR, o conteúdo na área de segurança application
(conteúdo instalado com o Adobe AIR) não é restringido por essas limitações de segurança.
Para obter mais informações relacionadas à segurança, consulte o tópico do Centro dos desenvolvedores do Flash Player Security.
Ao carregar um arquivo SWF a partir de uma fonte não confiável (como um domínio diferente daquele do arquivo SWF-raiz do objeto Loader), convém definir uma máscara para o objeto Loader, a fim de impedir que o conteúdo carregado (que é filho do objeto Loader) seja desenhado em partes do Palco fora dessa máscara, como mostra o código a seguir:
import flash.display.*; import flash.net.URLRequest; var rect:Shape = new Shape(); rect.graphics.beginFill(0xFFFFFF); rect.graphics.drawRect(0, 0, 100, 100); rect.graphics.endFill(); addChild(rect); var ldr:Loader = new Loader(); ldr.mask = rect; var url:String = "http://www.unknown.example.com/content.swf"; var urlReq:URLRequest = new URLRequest(url); ldr.load(urlReq); addChild(ldr);
Observação: o App Transport Security está sendo incluído pela Apple no iOS9, o que não permite conexões não seguras entre os aplicativos e serviços da Web. Devido a essa alteração, todas as conexões realizadas com sites não seguros através do carregador serão interrompidas pelo URLLoader e não funcionarão. Especifique as exceções do comportamento padrão adicionado chaves ao Info.plist no seu aplicativo.
Para desativar o recurso completamente, você pode adicionar um monitoramento no seu Info.plist e ele funcionará como antes.
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict>
Especifique as exceções do comportamento padrão com a adição das teclas à tag InfoAdditions do descritor do seu aplicativo.
<iPhone> <InfoAdditions> <![CDATA[ <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>www.example.com</key> <dict> <!--Include to allow subdomains--> <key>NSIncludesSubdomains</key> <true/> <!--Include to allow HTTP requests--> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> <!--Include to specify minimum TLS version--> <key>NSTemporaryExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> </dict> </dict> </dict> ]]> </InfoAdditions> </iPhone>
Elementos da API relacionados
Propriedade | Definido por | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
A implementação de acessibilidade atual (AccessibilityImplementation) para esta instância do InteractiveObject. | InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
As opções de acessibilidade atuais para este objeto de exibição. | DisplayObject | ||
alpha : Number
Indica o valor de transparência alfa do objeto especificado. | DisplayObject | ||
blendMode : String
Um valor a partir da classe BlendMode que especifica o modo de mesclagem a ser usado. | DisplayObject | ||
blendShader : Shader [somente gravação]
Define um shader usado para mesclar o primeiro plano e o segundo plano. | DisplayObject | ||
cacheAsBitmap : Boolean
Se definido como true, tempo de execução do Flash armazenará em cachê uma representação interna em bitmap do objeto de exibição. | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
Se não nulo, este objeto Matrix definirá como um objeto exibição será renderizado quando cacheAsBitmap for definido como verdadeiro. | DisplayObject | ||
constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | ||
content : DisplayObject [somente leitura]
Contém o objeto de exibição raiz do arquivo SWF ou do arquivo de imagem (JPEG, PNG ou GIF) que foi carregado com o uso do método load() ou loadBytes(). | Loader | ||
contentLoaderInfo : LoaderInfo [somente leitura]
Retorna um objeto LoaderInfo correspondente ao objeto que está sendo carregado. | Loader | ||
contextMenu : NativeMenu
Especifica o menu de contexto associado a este objeto. | InteractiveObject | ||
doubleClickEnabled : Boolean
Especifica se o objeto recebe eventos doubleClick. | InteractiveObject | ||
filters : Array
Uma matriz indexada que contém cada objeto de filtro atualmente associado ao objeto de exibição. | DisplayObject | ||
focusRect : Object
Especifica se este objeto exibe um retângulo de foco. | InteractiveObject | ||
height : Number
Indica a altura do objeto de exibição, em pixels. | DisplayObject | ||
loaderInfo : LoaderInfo [somente leitura]
Retorna um objeto LoaderInfo contendo informações sobre o carregamento do arquivo ao qual esse objeto de exibição pertence. | DisplayObject | ||
mask : DisplayObject
O objeto de exibição de chamada é mascarado pelo objeto "mask" especificado. | DisplayObject | ||
metaData : Object
Obtém o objeto de metadados da instância DisplayObject se os metadados forem armazenados juntamente com a instância desse DisplayObject no arquivo SWF por uma marca PlaceObject4. | DisplayObject | ||
mouseChildren : Boolean
Determina se os filhos do objeto são ou não ativados pelo mouse, ou dispositivo de entrada do usuário. | DisplayObjectContainer | ||
mouseEnabled : Boolean
Especifica se este objeto recebe mensagens de mouse, ou de outras entradas de usuários. | InteractiveObject | ||
mouseX : Number [somente leitura]
Indica a coordenada x da posição do dispositivo do mouse ou de entrada do usuário, em pixels. | DisplayObject | ||
mouseY : Number [somente leitura]
Indica a coordenada y da posição do dispositivo do mouse ou de entrada do usuário, em pixels. | DisplayObject | ||
name : String
Indica o nome da ocorrência de DisplayObject. | DisplayObject | ||
needsSoftKeyboard : Boolean
Especifica se um teclado virtual (teclado de software, na tela) deve ser exibido quando esta instância InteractiveObject recebe foco. | InteractiveObject | ||
numChildren : int [somente leitura]
Retorna o número de filhos deste objeto. | DisplayObjectContainer | ||
opaqueBackground : Object
Especifica se o objeto de exibição é opaco com uma certa cor de plano de fundo. | DisplayObject | ||
parent : DisplayObjectContainer [somente leitura]
Indica o objeto DisplayObjectContainer que contém esse objeto de exibição. | DisplayObject | ||
root : DisplayObject [somente leitura]
Para um objeto de exibição em um arquivo SWF carregado, a propriedade "root" é o objeto de exibição na extremidade superior, na parte da estrutura em árvore da lista de exibição representada por esse arquivo SWF. | DisplayObject | ||
rotation : Number
Indica o giro da ocorrência de DisplayObject, em graus, a partir da sua orientação original. | DisplayObject | ||
rotationX : Number
Indica a rotação do eixo x da ocorrência DisplayObject, em graus, a partir da sua orientação original referente ao contêiner 3D parent. | DisplayObject | ||
rotationY : Number
Indica a rotação do eixo y da ocorrência DisplayObject, em graus, a partir da sua orientação original referente ao contêiner 3D parent. | DisplayObject | ||
rotationZ : Number
Indica a rotação do eixo z da ocorrência DisplayObject, em graus, a partir da sua orientação original referente ao contêiner 3D parent. | DisplayObject | ||
scale9Grid : Rectangle
A grade de dimensionamento atual que está em vigor. | DisplayObject | ||
scaleX : Number
Indica a escala horizontal (porcentagem) do objeto aplicada a partir do ponto de registro. | DisplayObject | ||
scaleY : Number
Indica a escala vertical (porcentagem) de um objeto aplicada a partir do ponto de registro desse objeto. | DisplayObject | ||
scaleZ : Number
Indica a escala de profundidade (porcentagem) de um objeto aplicada a partir do ponto de registro desse objeto. | DisplayObject | ||
scrollRect : Rectangle
Os limites do retângulo de rolagem do objeto de exibição. | DisplayObject | ||
softKeyboard : String
Controla a aparência do teclado suave. | InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
Define a área que deve permanecer na tela quando um teclado virtual for exibido (não disponível no iOS) | InteractiveObject | ||
stage : Stage [somente leitura]
O Palco do objeto de exibição. | DisplayObject | ||
tabChildren : Boolean
Determina se os filhos do objeto estão ativados para tabulação. | DisplayObjectContainer | ||
tabEnabled : Boolean
Especifica se este objeto está na ordem de tabulação. | InteractiveObject | ||
tabIndex : int
Especifica a ordem de tabulação de objetos em um arquivo SWF. | InteractiveObject | ||
textSnapshot : flash.text:TextSnapshot [somente leitura]
Retorna um objeto TextSnapshot para essa ocorrência de DisplayObjectContainer. | DisplayObjectContainer | ||
transform : flash.geom:Transform
Um objeto com propriedades relacionadas aos limites de pixels, matriz e transformação de cores de um objeto de exibição. | DisplayObject | ||
uncaughtErrorEvents : UncaughtErrorEvents [somente leitura]
Um objeto que despacha um evento uncaughtError quando um erro não manipulado ocorre no SWF que é carregado por este objeto Carregador. | Loader | ||
visible : Boolean
Se o objeto de exibição está ou não visível. | DisplayObject | ||
width : Number
Indica a largura do objeto de exibição, em pixels. | DisplayObject | ||
x : Number
Indica a coordenada x da ocorrência de DisplayObject com relação às coordenadas locais do DisplayObjectContainer-pai. | DisplayObject | ||
y : Number
Indica a coordenada y da ocorrência de DisplayObject com relação às coordenadas locais do DisplayObjectContainer-pai. | DisplayObject | ||
z : Number
Indica a posição da coordenada z ao longo do eixo z da ocorrência DisplayObject em relação ao contêiner 3D pai. | DisplayObject |
Método | Definido por | ||
---|---|---|---|
Loader()
Cria um objeto Loader que pode ser usado para carregar arquivos, como SWF, JPEG, GIF ou PNG. | Loader | ||
Adiciona uma ocorrência-filho de DisplayObject a essa ocorrência de DisplayObjectContainer. | DisplayObjectContainer | ||
Adiciona uma ocorrência-filho de DisplayObject a essa ocorrência de DisplayObjectContainer. | DisplayObjectContainer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra um objeto de ouvinte de evento em um objeto EventDispatcher, de forma que o ouvinte receba a notificação de um evento. | EventDispatcher | ||
Indica se restrições de segurança fariam com que qualquer objeto de exibição fosse omitido da lista retornada com a chamada do método DisplayObjectContainer.getObjectsUnderPoint() junto com o ponto especificado. | DisplayObjectContainer | ||
Cancela uma operação do método load() que está atualmente em andamento para a instância Loader. | Loader | ||
Determina se o objeto de exibição especificado é um filho da ocorrência de DisplayObjectContainer ou se é a própria ocorrência. | DisplayObjectContainer | ||
Envia um evento para o fluxo de eventos. | EventDispatcher | ||
Retorna um retângulo que define a área do objeto de exibição com relação ao sistema de coordenadas do objeto targetCoordinateSpace. | DisplayObject | ||
Retorna a ocorrência do objeto de exibição-filho que existe no índice especificado. | DisplayObjectContainer | ||
Retorna o objeto de exibição-filho que existe com o nome especificado. | DisplayObjectContainer | ||
Retorna a posição de índice de uma ocorrência-filho de DisplayObject. | DisplayObjectContainer | ||
Retorna uma matriz de objetos que estão dispostos no ponto especificado e são filhos (ou netos e assim por diante) desta ocorrência de DisplayObjectContainer. | DisplayObjectContainer | ||
Retorna um retângulo que define o limite do objeto de exibição, com base no sistema de coordenadas definido pelo parâmetro espaçoCoordenadasDestino, excluindo quaisquer traçados em formas. | DisplayObject | ||
Converte o objeto de ponto a partir de coordenadas de Palco (globais) em coordenadas do objeto de exibição (locais). | DisplayObject | ||
Converte um ponto bidimensional das coordenadas do Palco (globais) em coordenadas do objeto de exibição tridimensional (locais). | DisplayObject | ||
Verifica se o objeto EventDispatcher tem ouvintes registrados para um tipo específico de evento. | EventDispatcher | ||
Indica se um objeto tem uma propriedade especificada definida. | Object | ||
Avalia a caixa delimitadora do objeto de exibição para ver se ela sobrepõe ou faz interseção com a caixa delimitadora do objeto de exibição obj. | DisplayObject | ||
Avalia o objeto de exibição para ver se ele sobrepõe ou faz interseção com o ponto especificado pelos parâmetros x e y. | DisplayObject | ||
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | ||
Carrega um arquivo SWF, JPEG, JPEG progressivo, GIF não animado ou PNG em um objeto que é filho do objeto Loader. | Loader | ||
Carrega de dados binários armazenados em um objeto ByteArray. | Loader | ||
Carrega uma instância de IFilePromise. | Loader | ||
Converte um ponto tridimensional das coordenadas (locais) do objeto de exibição tridimensional em ponto bidimensional das coordenadas (globais) do Palco. | DisplayObject | ||
Converte o objeto de ponto a partir das coordenadas do objeto de exibição (locais) em coordenadas do Palco (globais). | DisplayObject | ||
Indica se a propriedade especificada existe e é enumerável. | Object | ||
Remove uma ocorrência-filho de DisplayObject especificada da lista de filhos da ocorrência de DisplayObjectContainer. | DisplayObjectContainer | ||
Remove um DisplayObject filho da posição de índice especificada na lista de filhos de DisplayObjectContainer. | DisplayObjectContainer | ||
Remove todas as instâncias filho DisplayObject especificadas da lista de filhos da instância DisplayObjectContainer. | DisplayObjectContainer | ||
Remove um ouvinte do objeto EventDispatcher. | EventDispatcher | ||
Ativa um teclado virtual. | InteractiveObject | ||
Altera a posição de um filho existente no contêiner de objetos de exibição. | DisplayObjectContainer | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
Interrompe repetitivamente a execução da linha de tempo de todos os MovieClips enraizados neste objeto. | DisplayObjectContainer | ||
Alterna a ordem z (ordem da frente para trás) dos dois objetos filhos especificados. | DisplayObjectContainer | ||
Alterna a ordem z (ordem da frente para trás) dos objetos-filho nas duas posições de índice especificadas na lista de filhos. | DisplayObjectContainer | ||
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | ||
Retorna a representação de string do objeto especificado. | Object | ||
Remove um filho deste objeto Loader que foi carregado com o uso do método load(). | Loader | ||
Tenta descarregar o conteúdo do arquivo SWF filho e interrompe a execução de comandos dos arquivos SWF carregados. | Loader | ||
Retorna o valor primitivo do objeto especificado. | Object | ||
Verifica se um ouvinte de evento está registrado nesse objeto EventDispatcher ou em qualquer um de seus ancestrais para o tipo de evento especificado. | EventDispatcher |
content | propriedade |
content:DisplayObject
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Contém o objeto de exibição raiz do arquivo SWF ou do arquivo de imagem (JPEG, PNG ou GIF) que foi carregado com o uso do método load()
ou loadBytes()
.
Implementação
public function get content():DisplayObject
Lança
SecurityError — O arquivo SWF carregado ou o arquivo de imagem pertence a uma área de segurança à qual você não tem acesso. Para um arquivo SWF carregado, é possível evitar essa situação fazendo com que o arquivo chame o método Security.allowDomain() ou fazendo com que o arquivo em carregamento especifique um parâmetro loaderContext com sua propriedade securityDomain definida como SecurityDomain.currentDomain quando você chamar o método load() ou loadBytes() .
|
Elementos da API relacionados
contentLoaderInfo | propriedade |
contentLoaderInfo:LoaderInfo
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Retorna um objeto LoaderInfo correspondente ao objeto que está sendo carregado. Objetos LoaderInfo são compartilhados entre o objeto Loader e o objeto de conteúdo carregado. O objeto LoaderInfo fornece informações sobre o progresso do carregamento e estatísticas sobre o arquivo carregado.
Os eventos relacionados ao carregamento são despachados pelo objeto LoaderInfo referenciado pela propriedade contentLoaderInfo
do objeto Loader. A propriedade contentLoaderInfo
é definida como um objeto LoaderInfo válido, antes de o conteúdo ser carregado, para que você possa adicionar ouvintes de eventos a esse objeto antes do carregamento.
Para descobrir erros não capturados que acontecem em um SWF carregado, use a propriedade Loader.uncaughtErrorEvents
, não a propriedade Loader.contentLoaderInfo.uncaughtErrorEvents
.
Implementação
public function get contentLoaderInfo():LoaderInfo
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
var url:String = "http://www.helpexamples.com/flash/images/image2.jpg"; var urlRequest:URLRequest = new URLRequest(url); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete); loader.load(urlRequest); addChild(loader); function loader_complete(evt:Event):void { var target_mc:Loader = evt.currentTarget.loader as Loader; target_mc.x = (stage.stageWidth - target_mc.width) / 2; target_mc.y = (stage.stageHeight - target_mc.height) / 2; }
uncaughtErrorEvents | propriedade |
uncaughtErrorEvents:UncaughtErrorEvents
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10.1, AIR 2 |
Um objeto que despacha um evento uncaughtError
quando um erro não manipulado ocorre no SWF que é carregado por este objeto Carregador. Um erro não capturado acontece quando um erro é lançado fora de qualquer try..catch
ou quando um objeto ErrorEvent é despachado sem ouvintes registrados.
Observe que a propriedade uncaughtErrorEvents
de um objeto Carregador despacha eventos que surgem em balões por ele, não eventos que são despachados diretamente. Nunca despacha um uncaughtErrorEvent
na fase de destino. Ele só despacha o evento nas fases de captura e bubbling. Para detectar um erro não capturado no SWF atual (o SWF no qual o objeto de Carregador é definido), use a propriedade LoaderInfo.uncaughtErrorEvents
.
Se o conteúdo carregado pelo objeto Loader for um arquivo AVM1 (ActionScript 2) SWF, os erros não capturados no arquivo AVM1 SWF não resultarão em um evento uncaughtError
.
Implementação
public function get uncaughtErrorEvents():UncaughtErrorEvents
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
uncaughtError
para detectar erros não capturados.
No construtor, o código cria um objeto Carregador e registra um ouvinte para o evento uncaughtError
despachado pela propriedade uncaughtErrorEvents
do objeto de Carregador.
No método uncaughtErrorHandler()
, o código verifica o tipo de dados da propriedade error
e responde de acordo.
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.ErrorEvent; import flash.events.UncaughtErrorEvent; import flash.net.URLRequest; public class LoaderUncaughtErrorEventExample extends Sprite { private var ldr:Loader; public function LoaderUncaughtErrorEventExample() { ldr = new Loader(); ldr.load(new URLRequest("child.swf")); ldr.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } } }
Loader | () | Construtor |
public function Loader()
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Cria um objeto Loader que pode ser usado para carregar arquivos, como SWF, JPEG, GIF ou PNG. Chame o método load()
para carregar o recurso como um filho da ocorrência de Loader. Em seguida, você pode adicionar o objeto à lista de exibição (por exemplo, usando o método addChild()
de uma ocorrência de DisplayObjectContainer). O recurso aparece no Palco conforme ele é carregado.
Também é possível usar uma ocorrência de Loader "fora da lista", ou seja, sem adicioná-la ao contêiner de objetos de exibição na lista de exibição. Nesse modo, a ocorrência de Loader pode ser usada para carregar um arquivo SWF que contenha módulos adicionais de um aplicativo.
Para detectar quando o arquivo SWF terminar de ser carregado, você pode usar os eventos do objeto LoaderInfo associado à propriedade contentLoaderInfo
do objeto Loader. Nesse ponto, o código no módulo do arquivo SWF pode ser executado para inicializar e iniciar o módulo. Nesse modo fora de linha, a ocorrência de Loader também pode ser usada para carregar um arquivo SWF que contenha componentes ou recursos de mídia. Mais uma vez, você pode usar as notificações de evento do objeto LoaderInfo para detectar quando os componentes terminam de ser carregados. Nesse ponto, o aplicativo pode começar a usar os componentes e os recursos de mídia na biblioteca do arquivo SWF, instanciando as classes do ActionScript 3.0 que representam esses componentes e recursos.
Para determinar o status de um objeto Loader, monitore os eventos a seguir do objeto LoaderInfo associado à propriedade contentLoaderInfo
do objeto Loader:
- O evento
open
é despachado quando o carregamento é iniciado. - O evento
ioError
ousecurityError
será despachado se o arquivo não puder ser carregado ou se um erro tiver ocorrido durante o processo de carregamento. - O evento
progress
é acionado continuamente enquanto o arquivo está sendo carregado. - O evento
complete
é despachado quando um arquivo termina de ser baixado, mas antes de os métodos e as propriedades do clipe de filme carregado estarem disponíveis. - O evento
init
será despachado depois que as propriedades e os métodos do arquivo SWF carregado estiverem acessíveis, para que você possa começar a manipular o arquivo SWF carregado. Esse evento é despachado antes do manipuladorcomplete
. Em arquivos SWF de fluxo, o eventoinit
pode ocorrer significativamente antes do eventocomplete
. Para a maioria das finalidades, use o manipuladorinit
.
Observações (somente iOS): Em aplicativos AIR no iOS, é possível carregar somente um arquivo SWF contendo o ActionScript do pacote do aplicativo. Esta restrição inclui qualquer ActionScript, como os ativos com nomes de classes exportados para o ActionScript. Para carregar qualquer arquivo SWF, é preciso carregar o SWF utilizando o mesmo domínio do aplicativo como o SWF pai.
Em versões anteriores ao AIR 3.6, somente os arquivos SWF que não contenham o código de bytes do ActionScript podem ser carregados, independentemente de terem sido carregados de um pacote de aplicativo ou por uma rede. Como alternativa para usar um arquivo SWF externo com o ActionScript, crie uma biblioteca SWC e vincule-a ao SWF principal.
Estas restrições não se aplicam quando o aplicativo é executado no simulador do iOS (ipa-test-interpreter-simulator ou ipa-debug-interpreter-simulator) ou no modo intérprete (ipa-test-interpreter ou ipa-debug-interpreter.)
Elementos da API relacionados
close | () | método |
public function close():void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Cancela a operação do método load()
que está atualmente em andamento para a instância Loader.
Elementos da API relacionados
load | () | método |
public function load(request:URLRequest, context:LoaderContext = null):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Carrega um arquivo SWF, JPEG, JPEG progressivo, GIF não animado ou PNG em um objeto que é filho do objeto Loader. Se você carregar um arquivo GIF animado, apenas o primeiro quadro será exibido. Como o objeto Loader pode conter apenas um único filho, emitir uma solicitação load()
subsequente terminará a solicitação anterior, se esta ainda estiver pendente, e começará um novo carregamento.
Observação: No AIR 1.5 e no Flash Player 10, o tamanho máximo de uma imagem carregada é de 8.191 pixels de largura ou de altura, e o número total de pixels não pode exceder 16.777.215 pixels. (Dessa forma, caso uma imagem carregada tenha 8.191 pixels de largura, ela só pode ter 2.048 pixels de altura.) No Flash Player 9 e anteriores e no AIR 1.1 e anteriores, a limitação é de 2.880 pixels de altura e de 2.880 pixels de largura.
Um arquivo SWF ou uma imagem carregada em um objeto Loader herda as propriedades de posição, giro e escala dos objetos de exibição-pai desse objeto Loader.
Use o método unload()
para remover filmes ou imagens carregados com esse método ou para cancelar uma operação de carregamento em progresso.
Você pode impedir o arquivo SWF de usar esse método configurando o parâmetro allowNetworking
das marcas object
e embed
na página HTML com o conteúdo SWF.
Observações para o iOS
Em aplicativos AIR no iOS, você somente pode carregar um arquivo SWF que contenha o ActionScript do pacote do aplicativo. Esta restrição inclui qualquer ActionScript, como os ativos com nomes de classes exportados para o ActionScript. Para carregar qualquer arquivo SWF, é preciso carregar o SWF utilizando o mesmo domínio do aplicativo como o SWF pai, como é mostrado no exemplo a seguir:
var loader:Loader = new Loader(); var url:URLRequest = new URLRequest("swfs/SecondarySwf.swf"); var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null); loader.load(url, loaderContext);
Além disso, não é possível carregar no iOS um arquivo SWF que contenha um código ActionScript ByteCode (ABC) e, então, descarregá-lo e carregá-lo novamente. Se você tentar fazer isso, o runtime lançará o erro 3764.
Em versões anteriores ao AIR 3.6, somente os arquivos SWF que não contenham o código de bytes do ActionScript podem ser carregados, independentemente de terem sido carregados de um pacote de aplicativo ou por uma rede. Como alternativa para usar um arquivo SWF externo com o ActionScript, crie uma biblioteca SWC e vincule-a ao SWF principal.
Estas restrições não se aplicam quando o aplicativo é executado no simulador do iOS (ipa-test-interpreter-simulator ou ipa-debug-interpreter-simulator) ou no modo intérprete (ipa-test-interpreter ou ipa-debug-interpreter.)
Segurança do Loader
Ao usar esse método, considere o modelo de segurança do Flash Player, explicado na descrição da classe Loader.
No Flash Player 10 e posterior, se você usar um Content-Type de partes múltiplas (por exemplo, "multipart/form-data") que contém um upload (indicado por um parâmetro "filename" no cabeçalho "content-disposition" do corpo POST), a operação POST ficará sujeita às regras de segurança aplicadas a uploads:
- A operação POST deverá ser executada em resposta a uma ação iniciada pelo usuário, por exemplo, clique de mouse ou pressionamento de tecla.
- Se a operação POST for entre domínios (se o destino de POST não estiver no mesmo servidor do arquivo SWF que está enviando a solicitação POST), o servidor de destino deverá fornecer um arquivo de diretivas de URL que permita o acesso entre domínios.
Além disso, a sintaxe deverá ser válida (de acordo com o padrão RFC2046) para qualquer Content-Type de partes múltiplas. Se a sintaxe for inválida, a operação POST ficará sujeita às regras de segurança aplicadas a uploads.
Para obter mais informações relacionadas à segurança, consulte o tópico do Centro dos desenvolvedores do Flash Player Security.
Parâmetros
request:URLRequest — A URL absoluta ou relativa do arquivo SWF, JPEG, GIF ou PNG a ser carregado. Um caminho relativo deve ser relativo ao arquivo SWF principal. URLs absolutas devem incluir a referência de protocolo, como http:// ou arquivo:///. Nomes de arquivo não podem incluir especificações de unidade de disco.
| |
context:LoaderContext (default = null ) — Um objeto LoaderContext, que tem propriedades que definem o seguinte:
Se o parâmetro Somente iOS: ao chamar o método Para obter detalhes completos, consulte a descrição das propriedades na classe LoaderContext. |
Eventos
asyncError: — Despachado pelo objeto contentLoaderInfo se a propriedade LoaderContext.requestedContentParent foi especificada e não for possível adicionar o conteúdo carregado como um filho ao DisplayObjectContainer especificado. Isto poderá acontecer se o conteúdo carregado for um flash.display.AVM1Movie ou se a chamada addChild () para o requestedContentParent gerar um erro.
| |
complete: — Despachado pelo objeto contentLoaderInfo quando o arquivo termina de ser carregado. O evento complete sempre é despachado após o evento init .
| |
httpStatus: — Despachado pelo objeto contentLoaderInfo quando uma solicitação de rede é feita através de HTTP e o Flash Player pode detectar o código de status HTTP.
| |
init: — Despachado pelo objeto contentLoaderInfo quando as propriedades e os métodos do arquivo SWF carregado estão acessíveis. O evento init sempre precede o evento complete .
| |
ioError: — Despachado pelo objeto contentLoaderInfo quando ocorre um erro de entrada ou saída que resulta na falha de uma operação de carregamento.
| |
open: — Despachado pelo objeto contentLoaderInfo quando a operação de carregamento é iniciada.
| |
progress: — Despachado pelo objeto contentLoaderInfo quando dados são recebidos durante o progresso de uma operação de carregamento.
| |
securityError: — Despachado pelo objeto contentLoaderInfo se um arquivo SWF na área de segurança local com sistema de arquivos tenta carregar o conteúdo na caixa de proteção local com sistema de rede, ou vice-versa.
| |
securityError: — Despachado pelo objeto contentLoaderInfo se a propriedade LoaderContext.requestedContentParent foi especificada e a área de segurança do LoaderContext.requestedContentParent não tiver acesso ao SWF carregado.
| |
unload: — Despachado pelo objeto contentLoaderInfo quando um objeto carregado é removido.
|
Lança
IOError — A propriedade digest do objeto request não é null . Somente defina a propriedade digest de um objeto URLRequest quando chamar o método URLLoader.load() ao carregar um arquivo SWZ (componente da plataforma Adobe).
| |
SecurityError — O valor de LoaderContext.securityDomain deve ser null ou SecurityDomain.currentDomain . Isso reflete o fato de que você pode apenas inserir a mídia carregada na respectiva área de segurança natural ou na sua própria caixa de proteção (o que requer um arquivo de diretivas).
| |
SecurityError — Arquivos SWF locais podem não definir LoaderContext.securityDomain como algo diferente de null . Não é permitido importar mídia não local em uma área de segurança local ou inserir outras mídias locais em algo que não seja a sua área de segurança natural.
| |
SecurityError — Não é possível conectar-se às portas normalmente reservadas. Para ver uma lista completa de portas bloqueadas, consulte "Restrição de APIs de rede" no Guia do Desenvolvedor do ActionScript 3.0.
| |
SecurityError — Se as propriedades applicationDomain ou securityDomain do parâmetro contexto forem de um domínio não permitido.
| |
SecurityError — Se um arquivo SWF local estiver tentando usar a propriedade securityDomain do parâmetro contexto .
| |
IllegalOperationError — Se a propriedade requestedContentParent do parâmetro context for um Carregador .
| |
IllegalOperationError — Se o parâmetro LoaderContext.parameters for definido como não nulo e tier alguns valores que não sejam sequências de caracteres.
| |
IllegalOperationError — No iOS, se o aplicativo tentar carregar o arquivo SWF em um domínio do aplicativo diferente do domínio principal do aplicativo.
| |
IllegalOperationError — No iOS, se o aplicativo tentar recarregar um SWF que tenha sido carregado e descarregado e que contenha o código ABC.
| |
Error — No iOS, se o aplicativo tentar carregar um arquivo SWF de fora do pacote do aplicativo que contém o código do ActionScript. Este erro não pode ser capturado. Ele aparece como uma caixa de diálogo na tela do aplicativo com a mensagem "ActionScript não compilado". Em versões anteriores ao AIR 3.6, este erro ocorre quando você tenta carregar qualquer arquivo SWF que contenha o ActionScript, seja ele externo ou incluído no pacote do aplicativo.
|
Elementos da API relacionados
loadBytes | () | método |
public function loadBytes(bytes:ByteArray, context:LoaderContext = null):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Carrega de dados binários armazenados em um objeto ByteArray.
O método loadBytes()
é assíncrono. Você deve esperar pelo evento "init" antes de acessar as propriedades de um objeto carregado.
Ao usar esse método, considere o modelo de segurança do Flash Player, explicado na descrição da classe Loader.
Observação (somente iOS): Em aplicativos AIR no iOS, é possível carregar um arquivo SWF contendo o ActionScript de um pacote do aplicativo. Esta restrição inclui qualquer ActionScript, como os ativos com nomes de classes exportados para o ActionScript. Para carregar qualquer arquivo SWF, é preciso carregar o SWF utilizando o mesmo domínio do aplicativo como o SWF pai.
Em versões anteriores ao AIR 3.6, este método não afetava o iOS.
Parâmetros
bytes:ByteArray — Um objeto ByteArray. O conteúdo de ByteArray pode ser qualquer um dos formatos de arquivo suportados pela classe Loader: SWF, GIF, JPEG ou PNG.
| |
context:LoaderContext (default = null ) — Um objeto LoaderContext. Somente a propriedade applicationDomain do objeto LoaderContext se aplica; as propriedades checkPolicyFile e securityDomain do objeto LoaderContext não se aplicam.
Se o parâmetro Para obter mais informações relacionadas à segurança, consulte o tópico do Centro dos desenvolvedores do Flash Player Security. |
Eventos
asyncError: — Despachado pelo objeto contentLoaderInfo se a propriedade LoaderContext.requestedContentParent foi especificada e não for possível adicionar o conteúdo carregado como um filho ao DisplayObjectContainer especificado. Isto poderá acontecer se o conteúdo carregado for um flash.display.AVM1Movie ou se a chamada addChild () para o requestedContentParent gerar um erro.
| |
complete: — Despachado pelo objeto contentLoaderInfo quando a operação é concluída. O evento complete sempre é despachado após o evento init .
| |
init: — Despachado pelo objeto contentLoaderInfo quando as propriedades e os métodos dos dados carregados estão acessíveis. O evento init sempre precede o evento complete .
| |
ioError: — Despachado pelo objeto contentLoaderInfo quando o tempo de execução não pode analisar os dados na matriz de bytes.
| |
open: — Despachado pelo objeto contentLoaderInfo quando a operação é iniciada.
| |
progress: — Despachado pelo objeto contentLoaderInfo objeto quando os dados são transferidos na memória.
| |
securityError: — Despachado pelo objeto contentLoaderInfo se a propriedade LoaderContext.requestedContentParent foi especificada e a área de segurança do LoaderContext.requestedContentParent não tiver acesso ao SWF carregado.
| |
unload: — Despachado pelo objeto contentLoaderInfo quando um objeto carregado é removido.
|
Lança
ArgumentError — Se a propriedade length do objeto ByteArray não for maior do que 0.
| |
IllegalOperationError — Se a propriedade checkPolicyFile ou securityDomain do parâmetro contexto for diferente de "null".
| |
IllegalOperationError — Se a propriedade requestedContentParent do parâmetro context for um Carregador .
| |
IllegalOperationError — Se o parâmetro LoaderContext.parameters for definido como não nulo e tier alguns valores que não sejam sequências de caracteres.
| |
IllegalOperationError — No iOS, se o aplicativo tentar carregar o arquivo SWF em um domínio do aplicativo diferente do domínio principal do aplicativo.
| |
IllegalOperationError — No iOS, se o aplicativo tentar recarregar um SWF que tenha sido carregado e descarregado e que contenha o código ABC.
| |
Error — No iOS, se o aplicativo tentar carregar um arquivo SWF de fora do pacote do aplicativo que contém o código do ActionScript. Este erro não pode ser capturado. Ele aparece como uma caixa de diálogo na tela do aplicativo com a mensagem "ActionScript não compilado". Em versões anteriores ao AIR 3.6, este erro ocorre quando você tenta carregar qualquer arquivo SWF que contenha o ActionScript, seja ele externo ou incluído no pacote do aplicativo.
| |
SecurityError — Se a propriedade applicationDomain fornecida da propriedade contexto for proveniente de um domínio não permitido.
| |
SecurityError — Não é possível conectar-se às portas normalmente reservadas. Para ver uma lista completa de portas bloqueadas, consulte "Restrição de APIs de rede" no Guia do Desenvolvedor do ActionScript 3.0.
|
Elementos da API relacionados
loadFilePromise | () | método |
public function loadFilePromise(promise:IFilePromise, context:LoaderContext = null):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2.5 |
Carrega uma instância de IFilePromise.
O método loadFilePromise
pega um objeto IFilePromise
e carrega os dados binários. Se os dados forem um fluxo progressivo, como a espera de um vídeo pelo "init" ou por eventos progress antes de acessar as propriedades do objeto carregado. Caso contrário, aguarde o evento completo para certificar-se de que os dados foram totalmente carregados.
Ao usar esse método, considere o modelo de segurança do Flash Player, explicado na descrição da classe Loader.
Parâmetros
promise:IFilePromise — Um objeto de IFilePromise. A fonte de dados do objeto pode ter os formatos de arquivo a que a classe Loader oferece suporte: SWF, GIF, JPEG ou PNG.
| |
context:LoaderContext (default = null ) — Um objeto LoaderContext. Somente a propriedade applicationDomain do objeto LoaderContext se aplica; as propriedades checkPolicyFile e securityDomain do objeto LoaderContext não se aplicam.
Se o parâmetro Para obter mais informações relacionadas à segurança, consulte o tópico do Centro dos desenvolvedores do Flash Player Security. |
Eventos
asyncError: — Despachado pelo objeto contentLoaderInfo se a propriedade LoaderContext.requestedContentParent foi especificada e não for possível adicionar o conteúdo carregado como um filho ao DisplayObjectContainer especificado. Isto poderá acontecer se o conteúdo carregado for um flash.display.AVM1Movie ou se a chamada addChild () para o requestedContentParent gerar um erro.
| |
complete: — Despachado pelo objeto contentLoaderInfo quando a operação é concluída. O evento complete sempre é despachado após o evento init .
| |
init: — Despachado pelo objeto contentLoaderInfo quando as propriedades e os métodos dos dados carregados estão acessíveis. O evento init sempre precede o evento complete .
| |
ioError: — Despachado pelo objeto contentLoaderInfo quando o tempo de execução não pode analisar os dados na fonte de dados ou se o fluxo da fonte de dados não for legível.
| |
open: — Despachado pelo objeto contentLoaderInfo quando a operação é iniciada.
| |
progress: — Despachado pelo objeto contentLoaderInfo objeto quando os dados são transferidos na memória.
| |
securityError: — Despachado pelo objeto contentLoaderInfo se a propriedade LoaderContext.requestedContentParent foi especificada e a área de segurança do LoaderContext.requestedContentParent não tiver acesso ao SWF carregado.
| |
unload: — Despachado pelo objeto contentLoaderInfo quando um objeto carregado é removido.
|
Lança
IllegalOperationError — Se a propriedade requestedContentParent do parâmetro context for um Carregador .
| |
IllegalOperationError — Se o parâmetro LoaderContext.parameters for definido como não nulo e tier alguns valores que não sejam sequências de caracteres.
| |
ArgumentError — Se o objeto IFilePromise transmitido como parâmetro for null
|
Elementos da API relacionados
unload | () | método |
public function unload():void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Remove um filho deste objeto Loader que foi carregado com o uso do método load()
. A propriedade
do objeto LoaderInfo associado é redefinida para null
. O filho não é necessariamente destruído, uma vez que outros objetos podem ter referências a ele; entretanto, ele deixa de ser um filho do objeto Loader.
Ao chamar o método unload()
a propriedade contentLoaderInfo
do objeto Loader é definida como null
. Quaisquer ativos visuais que foram carregados com o SWF são descarregados e removidos da memória. As definições de classe do ActionScript no SWF carregado permanecem na memória e codificam no mesmo domínio de aplicativo que o SWF carregado pode acessar as instâncias dessas classes e criar novas.
Observação (somente iOS): em versões anteriores ao AIR 3.6, este método não afeta iOS.
Como prática recomendada, antes de descarregar um arquivo SWF-filho, convém fechar explicitamente todos os fluxos nos objetos desse arquivo SWF-filho, como objetos LocalConnection, NetConnection, NetStream e Sound. Caso contrário, o áudio no arquivo SWF-filho poderá continuar a ser reproduzido, mesmo que esse arquivo SWF-filho tenha sido descarregado. Para encerrar fluxos no arquivo SWF-filho, adicione um ouvinte de evento ao filho que atende o evento unload
. Quando o pai chamar Loader.unload()
, o evento unload
será despachado ao filho. O código a seguir mostra como fazer isso:
function closeAllStreams(evt:Event) { myNetStream.close(); mySound.close(); myNetConnection.close(); myLocalConnection.close(); } myMovieClip.loaderInfo.addEventListener(Event.UNLOAD, closeAllStreams);
Elementos da API relacionados
unloadAndStop | () | método |
public function unloadAndStop(gc:Boolean = true):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Tenta descarregar o conteúdo do arquivo SWF filho e interrompe a execução de comandos dos arquivos SWF carregados. Esse método tenta descarregar os arquivos SWF que foram carregados com o Loader.load()
ou Loader.loadBytes()
, removendo referências aos objetos EventDispatcher, NetConnection, Timer, Sound ou Video do arquivo SWF filho. Como resultado, ocorre o seguinte com o arquivo SWF filho e a respectiva lista de exibição:
- Os sons são parados.
- Os ouvintes do evento Stage são removidos.
- Os ouvintes do evento
enterFrame
,frameConstructed
,exitFrame
,activate
edeactivate
são removidos. - Os timers são parados.
- As ocorrências de Camera e Microphone são desanexadas.
- Os clipes de filme são parados.
Ao chamar o método unloadAndStop()
, a propriedade contentLoaderInfo
do objeto Loader é definida como null
. Quaisquer ativos visuais que foram carregados com o SWF são descarregados e removidos da memória. As definições de classe do ActionScript no SWF carregado permanecem na memória e codificam no mesmo domínio de aplicativo que o SWF carregado pode acessar as instâncias dessas classes e criar novas.
Observação (somente iOS): em versões anteriores ao AIR 3.6, este método não afeta iOS.
Parâmetros
gc:Boolean (default = true ) — Fornece uma dica para o coletor de lixo ser executado nos objetos SWF filho (true ) ou não (false ). Se você estiver descarregando vários objetos de forma assíncrona, a definição do parâmetro gc como false poderá melhorar o desempenho do aplicativo. No entanto, se o parâmetro for definido como false , os objetos de mídia e de exibição do arquivo SWF filho poderão persistir na memória após a execução do comando unloadAndStop() .
|
Elementos da API relacionados
- Uma propriedade
url
é criada, representando a localização e o nome do arquivo de imagem - No construtor
LoaderExample
, um novo objeto Loader denominadoloader
é criado, sendo então transmitido ao métodoconfigureListeners()
, descrito na etapa 3. - O construtor cria uma nova ocorrência de um objeto URLRequest,
request
, com aurl
transmitida para que o nome e a localização do arquivo sejam conhecidos. - O objeto
request
é transmitido ao métodoload()
do objetoloader
, que carrega a imagem na lista de exibição. - Um ouvinte de eventos
clickHandler
é registrado para o eventoclick
no carregador. Depois de um clique do mouse, a imagem carregada é descarregada. - O método
configureListeners()
adiciona sete ouvintes de eventos usando os seguintes métodos:- O método
completeHandler()
é executado quando o carregamento da imagem é concluído. - O método
httpStatusHandler()
será executado se a imagem não estiver carregada localmente e apenas se uma solicitação de rede tiver sido disponibilizada e se o Flash Player puder detectá-la. - O método
initHandler()
é executado antes do métodocompleteHandler()
e depois do métodoprogressHandler()
. Em geral, o eventoinit
é mais útil ao carregar arquivos SWF. - O método
ioErrorHandler()
será executado se o arquivo de imagem não estiver disponível ou acessível. - O método
openHandler()
é executado quando o arquivo de imagem é aberto pela primeira vez. - O método
progressHandler()
é executado quando o arquivo de imagem começa a ser carregado, sendo novamente executado quando o carregamento da imagem é concluído. - O método
unLoadHandler()
é executado quando a imagem é descarregada com o uso do métodounload()
, no momento em que o usuário clica na imagem.
- O método
Lembre-se destes requisitos:
- Esse exemplo requer que um arquivo denominado Image.gif seja inserido no mesmo diretório que o arquivo SWF compilado. Use uma imagem com uma área que se encaixe nas dimensões do arquivo SWF principal.
- Embora esse exemplo utilize todos os eventos disponíveis para o objeto LoaderInfo, a maioria das situações requer apenas um subconjunto. Em particular, ao carregar apenas um arquivo de image, o evento
complete
(e talvez o eventoioError
) são suficientes durante o carregamento de uma imagem local.
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.net.URLRequest; public class LoaderExample extends Sprite { private var url:String = "Image.gif"; public function LoaderExample() { var loader:Loader = new Loader(); configureListeners(loader.contentLoaderInfo); loader.addEventListener(MouseEvent.CLICK, clickHandler); var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(Event.INIT, initHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(Event.UNLOAD, unLoadHandler); } private function completeHandler(event:Event):void { trace("completeHandler: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function initHandler(event:Event):void { trace("initHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal); } private function unLoadHandler(event:Event):void { trace("unLoadHandler: " + event); } private function clickHandler(event:MouseEvent):void { trace("clickHandler: " + event); var loader:Loader = Loader(event.target); loader.unload(); } } }
Wed Jun 13 2018, 11:10 AM Z