Проигрыватель 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
.