Objetos compartidos

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

Flash Player proporciona la capacidad de utilizar objetos compartidos , que son objetos de ActionScript que persisten fuera de un archivo SWF, ya sea localmente en el sistema de archivos de un usuario o remotamente en un servidor RTMP. Los objetos compartidos, al igual que otros medios de Flash Player, se dividen en entornos limitados de seguridad. Sin embargo, el modelo de entorno limitado de los objetos compartidos es algo distinto, ya que los objetos compartidos no son recursos a los que se puede tener acceso más allá de los límites de los dominios. Por el contrario, los objetos compartidos siempre se recuperan de un almacén de objetos compartidos que es específico del dominio de cada archivo SWF que llama a los métodos de la clase SharedObject. Los almacenes de objetos compartidos suelen ser incluso más específicos que los dominios de los archivos SWF: de forma predeterminada, cada archivo SWF utiliza un almacén de objetos compartidos específico de su URL de origen completa. Para obtener más información sobre los objetos compartidos, consulte Objetos compartidos .

Un archivo SWF puede utilizar el parámetro localPath de los métodos SharedObject.getLocal() y SharedObject.getRemote() para usar un almacén de objetos compartidos asociado solamente a una parte de su URL. De este modo, el archivo SWF puede permitir el uso compartido con otros archivos SWF de otros URL. Incluso si se pasa el valor '/' para el parámetro localPath , se sigue designando un almacén de objetos compartidos específico de su propio dominio.

Los usuarios pueden restringir el acceso a objetos compartidos utilizando el cuadro de diálogo Configuración de Flash Player o el Administrador de configuración. De forma predeterminada, pueden crearse objetos compartidos de un máximo de 100 KB de datos por dominio. Los usuarios con derechos administrativos y los usuarios pueden también limitar la capacidad de escribir en el sistema de archivos. Para obtener más información, consulte Controles de administrador y Controles de usuario .

Para especificar que un objeto compartido sea seguro, se debe establecer el valor true para el parámetro secure del método SharedObject.getLocal() o del método SharedObject.getRemote() . Tenga en cuenta las siguientes cuestiones relativas al parámetro secure :

  • Si el valor de este parámetro es true , Flash Player crea un nuevo objeto compartido seguro u obtiene una referencia a un objeto compartido seguro existente. Solo pueden leer o escribir en este objeto compartido seguro archivos SWF enviados a través de HTTPS que llamen a SharedObject.getLocal() con el parámetro secure definido como true .

  • Si el parámetro se establece en false , Flash Player crea un nuevo objeto compartido o bien obtiene una referencia a un objeto compartido existente que pueda leerse y escribirse con archivos SWF enviados mediante conexiones que no son HTTPS.

Si el archivo SWF que realiza la llamada no procede de un URL HTTPS, al especificar el valor true para el parámetro secure del método SharedObject.getLocal() o del método SharedObject.getRemote() , se emitirá una excepción SecurityError.

La elección de un almacén de objetos compartidos se basa en el URL de origen de un archivo SWF. Esto es cierto incluso en las dos situaciones en las que un archivo SWF no se origina en un simple URL: carga de importación y carga dinámica. La carga de importación hace referencia a la situación en la que se carga un archivo SWF con la propiedad LoaderContext.securityDomain establecida en SecurityDomain.currentDomain . En esta situación, el archivo SWF cargado tendrá un pseudoURL que empieza por el dominio del archivo SWF de carga, seguido del URL de origen real. La carga dinámica se refiere a la carga de un archivo SWF a través del método Loader.loadBytes() . En esta situación, el archivo SWF cargado tendrá un pseudoURL que empieza por el URL completo del archivo SWF que realiza la carga, seguido de un ID de entero. Tanto en la carga de importación como en la carga dinámica, el pseudoURL de un archivo SWF puede examinarse con la propiedad LoaderInfo.url. El pseudoURL se trata del mismo modo que un URL real, en lo que se refiere a la elección de un almacén de objetos compartidos. Se puede especificar un parámetro localPath de objeto compartido que utilice el pseudoURL parcialmente o en su totalidad.

Los usuarios y los administradores pueden optar por desactivar la utilización de objetos compartidos de terceros . Es la utilización de objetos compartidos por parte de cualquier archivo SWF que esté ejecutándose en un navegador web, cuando el URL de origen de dicho archivo SWF procede de un dominio distinto al del URL que se muestra en la barra de direcciones del navegador. Los usuarios y administradores pueden optar por desactivar la utilización de objetos compartidos de terceros por motivos de privacidad, con el fin de evitar el seguimiento entre dominios. Para evitar esta restricción, quizá desee asegurarse de que cualquier archivo SWF que utilice objetos compartidos solo se cargue en las estructuras de página HTML que garantizan que el archivo SWF procede del mismo dominio que se muestra en la barra de direcciones del navegador. Cuando se intentan utilizar objetos compartidos desde un archivo SWF de terceros y la utilización de objetos compartidos de terceros está desactivada, los métodos SharedObject.getLocal() y SharedObject.getRemote() devuelven null . Para obtener más información, consulte www.adobe.com/es/products/flashplayer/articles/thirdpartylso .