Просмотр полной версии : Общие SharedObject
Здравствуйте.
Подскажите как сделать, чтобы две разные флэшки могли читать из одного SharedObject-a? А то у меня получается только когда запускаю две абсолютно одинаковые флэшки.
Ну вообще то вы хранилище указываете заранее, и с него же берете, соотв и разные флешки будут читать одно и тоже если верно написали. А вообще шара сохраняется всегда в одно место, только файл разный в зависимости от гетлокал. И вообще не понятно что ЗНАЧИТ 2 одинаковые флешки, это как :?
В справке (http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/net/SharedObject.html#getLocal()) есть
Чтобы избежать непреднамеренного ограничения доступа к общему объекту, используйте параметр localpath. Наиболее "демократичный" подход заключается в установке localPath со значением / (косая черта). В этом случае общий объект становится доступным всем SWF-файлам в домене, но при этом увеличивается вероятность возникновения конфликтов имен с другими общими объектами в домене. При подходе ограничивающего характера в localPath добавляются имена папок, представляющих полный путь к SWF-файлу. Например, для общего объекта portfolio, созданного SWF-файлом по адресу www.myCompany.com/apps/stockwatcher.swf, можно установить параметр localPath со значением /, /apps или /apps/stockwatcher.swf. Следует определить, какой подход обеспечивает оптимальную гибкость для вашего приложения
Код первого проекта:
.....
var so:SharedObject = SharedObject.getLocal('test');
so.data.session_id = 'kakie-to dannie';
so.flush();
.....
код второго проекта:
.....
var so:SharedObject = SharedObject.getLocal('test');
trace(so.data.session_id); //undefined
.....
Получается что второй проект не видит то что записал первый. Опытным путём получилось что только такой же swf может считать данные, которые им же записаны. Что у меня не так?
cleptoman
02.03.2011, 15:40
var so:SharedObject = SharedObject.getLocal('/test');
м?
Не, всё равно undefined =((
Ну ваще то все так, а почему не работает не понятно. Клептоман / тут не причем как бы. Я не знаю в чем ваша проблема , но
var so:SharedObject = SharedObject.getLocal('test'); // перевожу : создаем новый объект шары, подцепляем данные с 'test' файла. Тоесть тут ошибок не должно быть.
Попробуйте сделать следующее :
Создайте кнопку в основной флешке - по клику : сначала проведите flush() как положено, затем сделайте trace(ваших данных) - если записалось ок. Следующей строкой грузим флешку, по событию INIT вызовем функцию из подгруженной флешки в которой сделаем нью шару и протрейсим данные. И наконец, если данные все равно undefined
1. Попробуйте послать тупо строку ( возможно косяк в ваших данных );
2. Сделайте flush() во второй флешке с заданием параметра, и протрейсите сразу.
После всех этих пунктов - отпишитесь если не работает
Будьте внимательнее в getLocal первый параметр name, а не localPath
package
{
import flash.display.Sprite;
import flash.net.SharedObject;
public class SO1 extends Sprite
{
public function SO1()
{
var so:SharedObject = SharedObject.getLocal("test", "/");
so.data.session_id = 'kakie-to dannie';
so.flush();
}
}
}
package
{
import flash.display.Sprite;
import flash.net.SharedObject;
public class SO2 extends Sprite
{
public function SO2()
{
var so:SharedObject = SharedObject.getLocal("test", "/");
trace(so.data.session_id);
}
}
}
Будьте внимательнее в getLocal первый параметр name, а не localPath Как бэ без указания пути он сохраняет в одно место. так что это не причем. ведь он не указывает путь
Как бэ без указания пути он сохраняет в одно место. так что это не причем. ведь он не указывает путь
Я ничего не понял :о(
Я пример привел для
чтобы две разные флэшки могли читать из одного SharedObject
Gbee когда мы пишем getLocal('name') у нас тот самый name сохраняется в дефолтный путь после Flush() ю И потом как ты не крути, вызывай хоть откуда getLocal('name') он все равно перейдет по дефолтному пути. Ваша запись ничем не отличается от его записи. тоесть getLocal('name' , '/') будет искать там же, что и просто getLocal('name')
:rtfm:
Подскажите как сделать, чтобы две разные флэшки могли читать из одного SharedObject-a?
Добавлено через 3 минуты
я уже давал ссылку (http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/net/SharedObject.html#getLocal())
Несмотря на то, что параметр localPath не является обязательным, ему можно найти применение, особенно в тех случаях, когда доступ к общему объекту требуется и другим SWF-файлам. Если данные в общем объекте специфичны для одного SWF-файла, который не будет перемещен в другое место, то целесообразнее использовать значение по умолчанию. Если доступ к общему объекту нужен другим SWF-файлам или если SWF-файл, создающий общий объект, будет впоследствии перемещен, то значение этого параметра определенно влияет на доступность общего объекта. Например, если вы создадите общий объект, у которого параметр localPath будет иметь значение по умолчанию (полный путь к SWF-файлу), то данный общий объект будет недоступен каким-либо другим SWF-файлам. Если вы позднее переместите исходный SWF-файл в другое место, то даже этому SWF-файлу не будут доступны данные, которые уже были сохранены в общем объекте.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.