Общие объекты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, необходимо учитывать следующее.
Если вызывающий 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. |
|