Просмотр полной версии : Shared Object - создаёт файлы с левыми именами
Если я правильно поняла, Shared Object должен создавать на машине пользователя файл с именем,прописанным в методе .getLocal('Имя файла') в папке .../localhost.
Мои мувики запускаются локально (не из Интернета), но создают в этой папке другие папки с именем типа ##854A56418DBED31B, а в ней - единственный файл с именем 00000001.sol (во всех папках файл только один и только с таким именем). Это приводит к тому, что не только другие мувики не видят Shared Object, но и даже разные версии одного мувика не видят Shared Object, созданный другой версией, хотя запускаются из одной и той же папки.
В чём дело? (Внутри файлов 00000001.sol были обнаружены все нужные переменные, а в конце файла строчка типа CORRECT.swf/VT3.sol - т.е. указано, какой файл .swf сохранил тут свои данные, и какой файл .sol он должен был на самом деле создать).
screamge
10.11.2007, 00:41
Вы случайно не используете русские буквы в названии файла или названии папки?
Нет, никаких русских букв, запись вида
_global.saveInFile = SharedObject.getLocal('VT1');
screamge
10.11.2007, 02:23
А в пути который до файла тоже нет русских символов?
_global.saveInFile = SharedObject.getLocal('VT1');
saveInFile.data.lang = 'rus';
saveInFile.flush ();
Такого рода запись у меня не вызывает описаного эффекта.
что не только другие мувики не видят Shared Object, но и даже разные версии одного мувика не видят Shared Object, созданный другой версиейПотому, что пишите
SharedObject.getLocal('VT1');
вместо
SharedObject.getLocal('VT1', 'путь');В первом случаи, если не указан второй параметр, файл VT1.sol создается в папке по пути и имени swf, то есть каждый новая версия swf с другим именем, будет работать с собственной версией VT1.sol. А во втором в папке путь/VT1.sol, что позволяет разным версиям использовать один и тот ж файл.
to screamge
Спасибо за совет, но русских букв нет нигде.
to iNils
Я написала
_global.saveInFile = SharedObject.getLocal('VT1','/folder');
- стало ещё хуже. Теперь никакие файлы вообще не создаются, и ничего не сохраняется.
Путь должен либо полностью, либо частично совпадать с фактическим путем к фильму.
iNils, я не поняла, какой путь должен совпадать? Вместо /folder надо указать весь путь C:\Documents and Settings\User\Application Data\... ? Или указывать путь до папки, в которой лежит swf ?
Попробовала посмотреть чужой файл-пример и случайно открыла его из архива rar. При компиляции в папке Flash Player\localhost появился файл \temp\Rar$DI01.149\journal2.swf\JournalObject.sol. Но потом этот же файл распаковала и открыла уже просто - и при компиляции появилась папка ##EEB3833C7FB4D324, а в ней опять - 00000001.sol. Что за чудеса? Причиной может быть ОС или версия Flash Player'а?
Товарищи! (Господа! Друзья! Мастера! и все остальные!)
Я нашла решение! На англоязычном форуме обсуждалась аналогичная проблема, так вот: не знаю, в чём тут дело, но действительно, при попытке указать путь к файлу в виде
_global.saveInFile = SharedObject.getLocal('VT1','/folder');
ничего не работает. Чтобы два мувика с разными именами или один и тот же, но перемещённый (скопированный) в другую папку, могли читать один и тот же файл, надо указывать путь всего лишь в виде одного слэша:
_global.saveInFile = SharedObject.getLocal('VT1', '/');
Вот теперь создаётся именно тот файл, который вы заказывали, и его видят все мувики, которым это положено. Правда, создаётся этот файл в localhost'е, только если у вас 7-й Player, а если 8-й, то - в
Macromedia\Flash Player\#SharedObjects\UYWRQJQJ (на каждой машине свой набор букв) \localhost\
, но если слэш не писать, то создаётся то, что я описывала раньше. И да, похоже всё-таки, что папки со страшными названиями вроде ##EEB3833C7FB4D324 и файлы 0000001.sol в них произрастают из-за использования русских букв - файл-то у меня назывался по-русски, да и лежал на Рабочем столе.
Спасибо всем, кто потратил время, пытаясь мне помочь.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.