Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ньюансы использования SharedObject (http://www.flasher.ru/forum/showthread.php?t=149909)

Muscul 03.02.2011 02:00

Ньюансы использования SharedObject
 
Привет, столкнулся с недокументированой особенностью работы SharedObject.

На HTML страницу рендрится одна и та же флешка (проигрыватель видео) в нескольких копиях. В этом проигрывателе есть настройки, которые я сохраняю в SharedObject. Проблема заключается в том, внесенные изменения в одном экземпляре проигрывателя не видны другому до перезагрузки страницы. После перезагрузки страницы с плеерами изменения подхватываются, но не устанавливаются в реальном времени в процессе работы.
Такое впечатление, что отдельный плеер работает со своей копией sharedObject с момента загрузки.

На форуме уже сталкивались с похожей проблемой, но, к сожалению, решений не предложили.
http://www.flasher.ru/forum/showthre...t=sharedObject

Код AS3:

// создаю объект
var sharedObject = SharedObject.getLocal("settings", "/");
// записываю значения
sharedObject.setProperty('resolution', resolution);
// читаю значения
resolution = sharedObject.data.resolution


iNils 03.02.2011 02:53

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

Psycho Tiger 03.02.2011 03:01

Аналогично, но если каждая флешка работает со своим SO, то можно синхронизировать их по LocalConnection.

VitaliyKrivtsov 03.02.2011 06:18

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

GBee 03.02.2011 09:14

Использовали такой механизм для разных флэшек, все было ок.

Код AS3:

var so:SharedObject = SharedObject.getLocal("settings", "/");
// записываю значения
so.data.resolution = 826;
so.flush();
// читаю значения
trace(so.data.resolution);

Добавлено через 1 минуту
setProperty, судя по хелпу, используется для удаленных операций.

Muscul 03.02.2011 10:00

Цитата:

Сообщение от iNils (Сообщение 969947)
Я не сталкивался с необходимостью писать в один SO данные с разных флешек, поэтому могу и ошибаться, но попробуйте после каждой записи вызывать flush ().

Спасибо за подсказку! Вызов метода flush(), действительно, был необходим в этой ситуации. Теперь данные применяются моментально для всех флешек.


Часовой пояс GMT +4, время: 16:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.