Общие объекты

Flash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий

Проигрыватель Flash Player предоставляет возможность использовать общие объекты , являющиеся объектами ActionScript, которые постоянно хранятся за пределами SWF-файла либо локально в файловой системе пользователя, либо удаленно на RTMP-сервере. Общие объекты, как и другое мультимедийное содержимое в проигрывателе Flash Player, распределяются по изолированным программным средам. Однако для общих объектов используется немного другая модель изолированных программных сред, так как они не являются ресурсами, к которым можно обращаться с других доменов. Вместо этого общие объекты всегда извлекаются из хранилища общих объектов, индивидуального для домена каждого SWF-файла, который вызывает методы класса SharedObject. Обычно хранилища общих файлов бывают даже более специфичными: по умолчанию каждый SWF-файл использует хранилище общих файлов, индивидуальное для его полного исходного URL-адреса. Дополнительные сведения об общих объектах см. в разделе « Общие объекты ».

SWF-файл может использовать параметр localPath методов SharedObject.getLocal() и SharedObject.getRemote() , чтобы использовать хранилище общих объектов, связанное только с частью его URL-адреса. Таким образом SWF-файл может разрешить использование общих объектов SWF-файлами с других URL-адресов. Даже если передать значение '/' для параметра localPath , все равно указывается хранилище общих объектов, индивидуальное для его домена.

Пользователи могут ограничить доступ к общим объектам с помощью диалогового окна параметров Flash Player или диспетчера настроек. По умолчанию общие объекты не могут содержать более 100 кб данных для каждого домена. Администраторы и пользователи также могут устанавливать ограничения на возможность записи данных в файловой системе. Дополнительные сведения см. в разделах « Элементы управления администратора » и « Элементы управления пользователя ».

Чтобы сделать общий объект защищенным, задайте свойство true для параметра secure метода SharedObject.getLocal() или SharedObject.getRemote() . Используя параметр secure , необходимо учитывать следующее.

  • Если данный параметр имеет значение true , проигрыватель Flash Player создает новый защищенный общий объект или получает ссылку на существующий защищенный общий объект. Данный защищенный общий объект может считываться или записываться только теми SWF-файлами, доставленными по протоколу HTTPS, которые вызывают метод SharedObject.getLocal() с параметром secure , имеющим значение true .

  • Если данный параметр имеет значение false , проигрыватель Flash Player создает новый общий объект или получает ссылку на существующий общий объект, который может быть считан или записан SWF-файлами, доставленными посредством подключения по другому протоколу (не HTTPS).

Если вызывающий SWF-файл размещен на незащищенном URL-адресе (без протокола HTTPS), то при передаче значения true для параметра secure метода SharedObject.getLocal() или SharedObject.getRemote() выдается исключение SecurityError.

Выбор хранилища общих объектов осуществляется на базе исходного URL-адреса SWF-файла. Это правило действует даже в двух случаях, когда SWF-файл имеет сложный URL-адрес: при загрузке с импортом и при динамической загрузке. При загрузке с импортом SWF-файл загружается с использованием свойства LoaderContext.securityDomain в значении SecurityDomain.currentDomain . В этой ситуации загружаемый SWF-файл получает псевдо-URL-адрес, в начале которого указывается домен загружающего SWF-файла, а затем исходный URL-адрес. Динамическая загрузка происходит, когда SWF-файл загружается с помощью метода Loader.loadBytes() . В этой ситуации загружаемый SWF-файл получает псевдоадрес, в начале которого указывается полный URL-адрес загружающего SWF-файла, а затем числовой идентификатор. И при загрузке с импортом и при динамической загрузке псевдо-URL SWF-файла можно получить с помощью свойства LoaderInfo.url . Псевдо-URL используется для выбора хранилища общих объектов точно так же, как и настоящий адрес. Можно указать параметр localPath общего объекта, в котором псевдо-URL используется частично или полностью.

Пользователи и администраторы могут отключить использование сторонних общих объектов . При этом общие объекты используются любыми SWF-файлами, выполняемыми в веб-обозревателях, когда исходный URL-адрес SWF-файла находится не в том домене, который указан в адресной строке обозревателя. Пользователи и администраторы могут отключить использование сторонних общих объектов, чтобы обеспечить конфиденциальность и избежать междоменного отслеживания. Во избежание такого ограничения можно сделать так, чтобы SWF-файлы, использующие общие объекты, загружались только в пределах структур HTML-страницы. Это гарантирует, что SWF-файл загружается с того домена, который отображается в адресной строке обозревателя. При попытке использовать общие объекты из стороннего SWF-файла возможность использования сторонних общих объектов отключается и методы SharedObject.getLocal() и SharedObject.getRemote() возвращают нулевое значение null . Дополнительные сведения см. на странице www.adobe.com/products/flashplayer/articles/thirdpartylso .