Carregamento de conteúdoFlash Player 9 e posterior, Adobe AIR 1.0 e posterior O conteúdo do Flash Player e do AIR pode carregar muitos outros tipos de conteúdos, entre eles o seguinte:
Carregamento de arquivos SWF e imagens com a classe LoaderUse a classe Loader para carregar arquivos SWF e imagens (arquivos JPG, GIF ou PNG). Qualquer arquivo SWF, a não ser um que esteja na caixa de proteção local com arquivos do sistema, pode carregar arquivos SWF e imagens de qualquer domínio de rede. Apenas arquivos SWF em caixas de proteção locais podem carregar arquivos SWF e imagens do sistema de arquivos local. No entanto arquivos na caixa de proteção local com rede podem carregar apenas arquivos SWF locais que estejam na mesma caixa de proteção confiável local ou local com rede. Os arquivos SWF na caixa de proteção local com rede carregam conteúdo local que não sejam arquivos SWF (como imagens), no entanto eles não podem acessar dados no conteúdo carregado. Ao carregar um arquivo SWF a partir de uma origem não confiável (como um domínio diferente daquele do arquivo SWF da raiz do objeto Loader), convém definir uma máscara para o objeto Loader para impedir que o conteúdo carregado (que é filho do objeto Loader) seja desenhado em partes do Palco fora daquela máscara, conforme mostrado no 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); 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); Ao chamar o método load() do objeto Loader, é possível especificar um parâmetro context que é um objeto LoaderContext. A classe LoaderContext inclui três propriedades que permitem definir o contexto de como o conteúdo carregado pode ser usado:
Para obter detalhes, consulte Especificação do contexto do carregamento. Uma propriedade importante de um objeto Loader é a propriedade contentLoaderInfo que é um objeto LoaderInfo. Ao contrário da maioria dos outros objetos, um objeto LoaderInfo é compartilhado entre o arquivo SWF que está sendo carregado e o conteúdo carregado e sempre está acessível para as duas partes. Quando o conteúdo carregado é um arquivo SWF, ele pode acessar o objeto LoaderInfo por meio da propriedade DisplayObject.loaderInfo. Objetos LoaderInfo incluem informações, como o progresso do carregamento, as URLs do carregador e do carregado, o relacionamento de confiança entre o carregador e o carregado e outras informações. Para obter mais informações, consulte Monitoramento do progresso do carregamento. Carregamento de som e vídeoTodos o conteúdo, além dos que estão na área de proteção local com o sistema de arquivos, têm permissão para carregar som e vídeo de origens da rede, usando os métodos Sound.load(), NetConnection.connect() e NetStream.play() . Somente o conteúdo local com o sistema de arquivos e aplicativos AIR podem carregar mídia do sistema de arquivos local. Somente o conteúdo na área de segurança local com o sistema de arquivos, a área de segurança do aplicativo AIR ou a área de segurança local confiável podem acessar dados nos arquivos carregados. Há outras restrições ao acessar dados de mídia carregada. Para obter detalhes, consulte Acesso à mídia carregada como dados. Carregamento de arquivos SWF e de imagens usando a tag <img> em um campo de textoÉ possível carregar arquivos SWF e bitmaps em um campo de texto usando a tag <img>, conforme mostrado no código a seguir: <img src = 'filename.jpg' id = 'instanceName' > É possível carregar conteúdo carregado dessa maneira usando o método getImageReference() da ocorrência TextField, conforme mostrado no código a seguir: var loadedObject:DisplayObject = myTextField.getImageReference('instanceName'); No entanto observe que arquivos SWF e imagens carregados dessa maneira são colocados na caixa de proteção que corresponde a sua origem. Ao carregar um arquivo de imagem usando uma tag <img> em um campo de texto, o acesso aos dados da imagem pode ser permitido por um arquivo de política de URL. É possível verificar se há um arquivo de política adicionando um atributo checkPolicyFile à tag <img>, como no código a seguir: <img src = 'filename.jpg' checkPolicyFile = 'true' id = 'instanceName' > Ao carregar um SWF usando uma tag <img> em um campo de texto, é possível permitir acesso aos dados daquele arquivo SWF por meio de uma chamada ao método Security.allowDomain(). Ao usar uma tag <img> em um campo de texto para carregar um arquivo externo (em vez de usar uma classe Bitmap incorporada em seu SWF), um objeto Loader é criado automaticamente como um filho do objeto TextField, e o arquivo externo é carregado naquele Loader exatamente como se você tivesse usado um objeto Loader no ActionScript para carregar o arquivo. Nesse caso, o método getImageReference() retorna o Loader que foi criado automaticamente. Nenhuma verificação de segurança é necessária para acessar esse objeto Loader porque ele está na mesma caixa de proteção de segurança que o objeto de chamada. No entanto quando você faz referência à propriedade content do objeto Loader para acessar a mídia carregada, regras de segurança são aplicadas. Se o conteúdo for uma imagem, será necessário implementar um arquivo de política de URL e, se o conteúdo for um arquivo SWF, você precisará fazer com que o código no arquivo SWF chame o método allowDomain(). Adobe AIRNa caixa de proteção do aplicativo, as marcas <img> em um campo de texto são ignoradas para evitar ataques de phishing. Além disso, o código executado na caixa de proteção do aplicativo não pode chamar o método de Segurança allowDomain(). Conteúdo entregue usando servidores RMTPO Flash Media Server usa o protocolo RTMP para servir dados, áudio e vídeo. É possível carregar esta mídia usando o método connect() da classe NetConnection, passando uma URL de RTMP como o parâmetro. O Flash Media Server pode restringir conexões e impedir que conteúdo seja baixado, com base no domínio do arquivo solicitante. Para obter detalhes, consulte a documentação on-line do Flash Media Server em www.adobe.com/go/learn_fms_docs_br. Para utilizar os métodos BitmapData.draw() e SoundMixer.computeSpectrum() para extrair gráficos de tempo de execução e dados de áudio de fluxos RTMP, você deve permitir o acesso no servidor. Utilize o ActionScript de lado do servidor Client.videoSampleAccess e as propriedades Client.audioSampleAccess para permitir acesso a diretórios específicos no Flash Media Server. Para obter mais informações, consulte a Referência de linguagem do ActionScript de lado do servidor. |
![]() |