2010-06-29 6 views
1

Я хотел бы как-то сохранить объект FileReference и загрузить его, когда SWF загрузится снова.Хранение FileReference в SharedObject

Я попытался использовать класс SharedObject, но он не работает. Я подозреваю, что то, что я хочу сделать, не выполнимо из-за проблем с безопасностью (не используя Adobe AIR), но я хотел проверить.

Кто-нибудь, пожалуйста, знает, есть ли в любом случае для хранения объекта FileReference и загружать его при перезапуске SWF?

Большое спасибо,

Rudy

+0

Боюсь, что это невозможно. Для операций файловой системы всегда требуется действие пользователя. –

ответ

2

Я не думаю, что вы можете хранить FileReference в SharedObject. Или, по крайней мере, я не думаю, что вы могли бы вернуть данные файла, так что на практике нет большой разницы.

Однако, с Flash Player 10 в объекте FileReference есть метод load, который позволяет вам прочитать файл (через свойство data).

Доступ к данным осуществляется в виде ByteArray, который может быть сериализован и сохранен в SO для последующего извлечения. Таким образом, вы можете попросить пользователя выбрать файл, прочитать его двоичные данные и сохранить его в SO (по умолчанию существует ограничение по 100 КБ, поэтому вам, скорее всего, придется попросить у пользователя дополнительное пространство).

В следующий раз, когда ваше приложение загружено, вы сможете получить данные файла из SO (при условии, что данные были успешно сохранены и SO не был удален).

+0

Благодарим вас за ответ. Проблема в том, что пользователь выбирает группу файлов, которые храню в очереди. Эти файлы будут загружены позже. Я не хочу их читать, просто сохраните FileReference, чтобы он мог быть загружен позже, когда пользователь вернется. Но я думаю, что это невозможно. – Rudy

+0

Да, это была бы дыра в безопасности, если бы filereference можно было сериализовать и десериализовать. ByteArray - это правильный путь ... (хотя я чувствую, что ваша боль - загрузка 2-гигабайтных видеофайлов действительно не жизнеспособна) ... – ansiart