Objetos compartilhados

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

O Flash Player fornece a capacidade de usar objetos compartilhados que são objetos ActionScript que persistem fora de um arquivo SWF, seja localmente no sistema de arquivos de um usuário ou remotamente em um servidor RTP. Objetos compartilhados, como outras mídias no Flash Player, são particionados em caixas de proteção de segurança. No entanto o modelo de caixa de proteção para objetos compartilhados é um pouco diferente porque objetos compartilhados não são recursos que podem ser acessados além dos limites do domínio. Ao contrário, os objetos compartilhados sempre são recuperados de um armazenamento de objetos compartilhados que é específico ao domínio de cada arquivo SWF que chama métodos da classe SharedObject. Normalmente, um objeto compartilhado é mais particular do que o domínio de um arquivo SWF: por padrão, cada arquivo SWF usa um armazenamento de objetos compartilhados específico a toda a sua URL de origem. Para obter mais informações sobre objetos compartilhados, consulte Objetos compartilhados .

Um arquivo SWF pode usar o parâmetro localPath dos métodos SharedObject.getLocal() e SharedObject.getRemote() para usar um armazenamento de objetos compartilhados com apenas uma parte de sua URL. Dessa maneira, o arquivo SWF pode permitir o compartilhamento com outros arquivos SWF de outras URLs. Mesmo que você passe '/' como o parâmetro localPath , ele ainda especifica um objeto compartilhado específico a seu próprio domínio.

Os usuários podem restringir o acesso a objetos compartilhados usando a caixa de diálogo Configurações do Flash Player ou o Gerenciador de configurações. Por padrão, os objetos compartilhados podem ser criados até um máximo de 100 KB de dados por domínio. Usuários administrativos e usuários também podem aplicar restrições quanto à capacidade de gravar no sistema de arquivos. Para obter mais informações, consulte Controles de administrador e Controles de usuário .

É possível especificar que um objeto compartilhado está protegido especificando true para o parâmetro secure do método SharedObject.getLocal() ou do método SharedObject.getRemote() . Observe o seguinte sobre o parâmetro secure :

  • Se esse parâmetro for definido como true , o Flash Player criará um novo objeto compartilhado ou obterá uma referência a um objeto compartilhado protegido existente. Esse objeto compartilhado protegido apenas poderá ser lido ou gravado por arquivos SWF entregues via HTTPS que chamarem SharedObject.getLocal() com o parâmetro protegido definido como true .

  • Se esse parâmetro for definido como false , o Flash Player criará um novo objeto compartilhado ou obterá uma referência a um objeto compartilhado existente que pode ser lido ou gravado por arquivos SWF entregues via conexões não HTTPS.

Se o arquivo SWF que faz a chamada não for de uma URL HTTPS, especificar true para o parâmetro secure do método SharedObject.getLocal() ou do método SharedObject.getRemote() resultará em uma exceção SecurityError.

A opção de armazenamento de um objeto compartilhado tem como base a URL de origem do arquivo SWF. Isso é verdadeiro mesmo nas duas situações em que um arquivo SWF não é originário de uma URL simples: carregamento de importação e carregamento dinâmico. O carregamento de importação se refere à situação em que você carrega um arquivo SWF com a propriedade LoaderContext.securityDomain definida como SecurityDomain.currentDomain . Nessa situação, o arquivo SWF carregado terá uma pseudoURL que começa com o domínio dou arquivo SWF carregado e especifica sua URL de origem real. O carregamento dinâmico refere-se ao carregamento de um arquivo SWF usando o método Loader.loadBytes() . Nesta situação, o arquivo SWF carregado terá um pseudoURL que começa com o URL completo de seu arquivo SWF de carregamento, seguido por um ID de inteiro. Nos casos de carregamento dinâmico e e de carregamento de importação, pode-se examinar o pseudoURL do arquivo SWF usando a propriedade LoaderInfo.url . A pseudoURL é tratada exatamente como uma URL real para a escolha de um armazenamento de objetos compartilhados. É possível especificar o parâmetro localPath de um objeto compartilhado que use parte ou toda a pseudoURL.

Usuários e administradores podem optar por desativar o uso de objetos compartilhados de terceiros . Esse é o uso de objetos compartilhados por qualquer arquivo SWF que esteja em execução em um navegador da Web, quando a URL de origem desse arquivo SWF for de um domínio diferente da URL mostrada na barra de endereço do navegador. Usuários e administradores podem optar por desativar o uso de objetos compartilhados de terceiros por motivos de privacidade, com o objetivo de impedir rastreamento entre domínios. Para evitar essa restrição, convém garantir que qualquer arquivo SWF que usa objetos compartilhados seja carregado apenas dentro de estruturas da página HTML que garantem que o arquivo SWF se origina do mesmo domínio mostrado na barra de endereço do navegador. Quando você tenta usar objetos compartilhados de um arquivo SWF de terceiros, e o objeto compartilhado de terceiros está desativado, os métodos SharedObject.getLocal() e SharedObject.getRemote() retornam null . Para obter mais informações, consulte www.adobe.com/products/flashplayer/articles/thirdpartylso .